运行 Python 脚本时出现名称错误

Name Error when running a Python Script

我的密码是

class GuessPassword(object):
      def generate_Parent(self,length):
              genes= []
              while len(genes) < length:
                   sampleSize = min(length - 
                       len(genes),len(self.__class__.geneSet))         
                   genes.extend(random.sample(self.__class__.geneSet, 
                              sampleSize))
             return ''.join(genes)

在我的主要方法中

if __name__ == '__main__':
   random.seed()
   bestparent = self.generate_Parent( len(target))

它给出了错误 "NameError: name 'self' is not defined"。当我 运行 它没有 "self" 它给出了错误 "NameError: name 'generate_Parent' is not defined".

我知道这是个小问题。但我搜索并找不到解决方案。任何帮助都会很棒。

你使用 class 中的 self,如果你想使用 GuessPassword class,你还需要制作一个 object class 方法。

if __name__ == '__main__':
   random.seed()
   # bestparent = self.generate_Parent( len(target)) # here is error

   # make object of a class
   guess = GuessPassword()
   # remove `self` because you are not in a class, and use object instance
   bestparent = guess.generate_Parent( len(target))