使用 class 方法设置初始实例参数
Setting initial instance parameter using a class method
我有这个代码:
import random
class Player:
def __init__(self):
self.first_name = set_first_name()
def set_first_name(self)
List = open("player/first_names.txt").readlines()
self.first_name = random.choice(List)
如您所见,我想从文本文件中随机设置名字。但是我收到这个错误:
def set_first_name(自我)^
语法错误:语法无效
我认为不可能在 class 实例的初始化中调用 class 方法。至少不是我这样做的方式。有人可以给我一个快速提示吗?我想有一个简单的解决方法。
谢谢
您的方法不是 class 方法,您只是缺少 set_first_name
方法的 def 行末尾的分号。
首先,如前所述 - 您在定义行中错过了 :
。
第二:即使你修复了它 - 你也会得到 NameError 因为 set_first_name
不在全局范围内。最后 - set_first_name
没有 returns 任何东西,所以你会得到 first_name
作为 None
.
假设您的代码的正确版本应如下所示:
import random
class Player:
def __init__(self):
self.first_name = self.set_first_name()
@staticmethod
def set_first_name():
List = open("player/first_names.txt").readlines()
return random.choice(List)
我有这个代码:
import random
class Player:
def __init__(self):
self.first_name = set_first_name()
def set_first_name(self)
List = open("player/first_names.txt").readlines()
self.first_name = random.choice(List)
如您所见,我想从文本文件中随机设置名字。但是我收到这个错误:
def set_first_name(自我)^ 语法错误:语法无效
我认为不可能在 class 实例的初始化中调用 class 方法。至少不是我这样做的方式。有人可以给我一个快速提示吗?我想有一个简单的解决方法。
谢谢
您的方法不是 class 方法,您只是缺少 set_first_name
方法的 def 行末尾的分号。
首先,如前所述 - 您在定义行中错过了 :
。
第二:即使你修复了它 - 你也会得到 NameError 因为 set_first_name
不在全局范围内。最后 - set_first_name
没有 returns 任何东西,所以你会得到 first_name
作为 None
.
假设您的代码的正确版本应如下所示:
import random
class Player:
def __init__(self):
self.first_name = self.set_first_name()
@staticmethod
def set_first_name():
List = open("player/first_names.txt").readlines()
return random.choice(List)