[英]In Python how can I create a method in a class that assigns values to attributes
我想要一种运行方法,将值分配给 object 而不是在括号中声明它们。 我有以下不起作用的代码。 我对所有解决方案持开放态度,包括那些包含构造函数中包含的方法的解决方案。
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)
class 玩家:def init (self,name=""): self.name = name
def get_player_details(self): 返回 self.name
def set_player_details(self, x): self.name = x
玩家 1 = 玩家 ()
input_detail = input("请输入玩家姓名:")
#将输入设置为玩家详细信息 player1.set_player_details(input_detail)
打印(player1.get_player_details())
打印(player1.name)
在这里你可以像普通属性一样分配:
def player_details(self):
self.name = input('Name: ')
或者你也可以得到一个论点:
def player_details(self, newName):
self.name = newName
这是你要找的吗? 您似乎不小心将您的方法创建为“静态方法”,即不访问 class 属性的方法。您可以通过添加“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)
这样做实现了我想要的,谢谢。
class Player:
def __init__(self, name =""):
self.name = input('Name: ')
#creating an instance of the Player class prompts the user to input name
#say I input "Jo"
player1 = Player()
#prints out "Jo"
print (player1.name)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.