在Python中,如何基于另一个__init__变量设置值?

问题描述:

def __init__(self): 
    #self.data = [] 
    self.random_word = random.choice(open("EnglishDictionary.txt").readlines()).strip() 
    self.length_notice = "The word you're guessing is {} letters long.".format(len(random_word)) 

这只是返回错误:名称 'random_word' 是不确定的在Python中,如何基于另一个__init__变量设置值?

+0

你可以让__init__调用一个函数,并传入你生成的那个random_word。 – Raizuri

您可以设置self.random_word,不random_word,所以你需要使用self.random_word

self.length_notice = "The word you're guessing is {} letters long.".format(len(self.random_word)) 
                    # Add self. ^^^^^ 
+0

嘿谢谢!我觉得很愚蠢 –

只是用它:

def __init__(self): 
    #self.data = [] 
    with open("EnglishDictionary.txt") as f: 
     msg = "The word you're guessing is {} letters long." 
     self.random_word = random.choice(f).strip() 
     self.length_notice = msg.format(len(self.random_word)) 

问问自己,但如果self.random_word确实需要是实例属性,或者如果random_word可以简单地作为函数内部的局部变量,如msg