我有这段代码:
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(self)^ SyntaxError:语法无效
我假设在类实例的初始化中不可能调用类方法。至少不是我这样做的方式。 sombody能给我一个快速提示吗?我想有一个简单的解决方法。
由于
答案 0 :(得分:1)
您的方法不是类方法,您只是在set_first_name
方法的def行末尾错过了分号。
答案 1 :(得分:1)
首先,正如已经提到的那样 - 你在定义行中错过了:
。
第二:即使你修复了 - 你会得到NameError,因为set_first_name
不在全局范围内。最后一点 - set_first_name
不会返回任何内容,因此您会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)