使用类方法设置初始实例参数

时间:2017-10-14 09:11:02

标签: python 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(self)^  SyntaxError:语法无效

我假设在类实例的初始化中不可能调用类方法。至少不是我这样做的方式。 sombody能给我一个快速提示吗?我想有一个简单的解决方法。

由于

2 个答案:

答案 0 :(得分:1)

您的方法不是类方法,您只是在set_first_name方法的def行末尾错过了分号。

答案 1 :(得分:1)

首先,正如已经提到的那样 - 你在定义行中错过了:。 第二:即使你修复了 - 你会得到NameError,因为set_first_name不在全局范围内。最后一点 - set_first_name不会返回任何内容,因此您会first_nameNone

假设您的代码的正确版本应如下所示:

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)