问题描述
我希望运行一个将值分配给对象而不是在括号中声明值的方法。我有以下无效的代码。我对所有解决方案都开放,包括那些包含构造函数中包含的方法的解决方案。
class Player:
def __init__(self,name):
self.name = name
#gather player detail method
def player_details():
return input('Name: ')
player1 = Player.player_details()
#I want the following line of code to output whatever the player name was entered as
print (player1.name)
解决方法
使用getter setter尝试此代码
职业玩家: def init (自身,名称=“”): self.name =名称
getter方法
def get_player_details(self): 返回self.name
设置方法
def set_player_details(self,x): self.name = x
player1 = Player()
使用设置器设置年龄
input_detail = input(“输入播放器名称:”)
#set输入作为玩家详细信息 player1.set_player_details(input_detail)
使用吸气剂回收年龄
print(player1.get_player_details())
print(player1.name)
,您可以在此处像普通属性一样进行分配:
def player_details(self):
self.name = input('Name: ')
或者您也可以得到一个论点:
def player_details(self,newName):
self.name = newName
,
这是您要找的吗?您似乎意外地将您的方法创建为“静态方法”,即不访问该类属性的方法。您可以通过添加“ self”作为参数来更改它。
class Player:
def __init__(self,name):
self.name = name
#gather player detail method
def player_details(self):
self.name = input('Name: ')
player1 = Player.player_details()
# I want the following line of code to output whatever the player name was entered as
print (player1.name)
,
这样做达到了我想要的,谢谢。
interface User {
name: string;
age: number;
}
const user: User = {
name: "John Smith",age: 20
};
getKeyValue(user,"name")