"此检查检测__init__方法之外的实例属性定义"PyCharm

6 python class pycharm

我正在使用以下类连接并在firebase数据库中创建游标:

class Firebird:

    username= "..."
    password= "..."

    def __init__(self, archive):
        self.archive = archive

   def connect(self):
       try:
           self.connection = connect(dsn=self.archive, user=self.username, password=self.password)
       except Error, e:
           print "Failed to connect to database", e
           exit(0)
Run Code Online (Sandbox Code Playgroud)

并且PyCharm警告我:"此检查在init方法中检测实例属性定义",在self.connectionassign中.

将属性分配给外部的实例是不好的做法__init__?在这种情况下,我该怎么办?

Ant*_*lvy 8

是的,通常认为在__init__函数中显式定义/声明所有属性是一种好习惯,这样您就可以快速列出类中所有已使用(或未使用)的属性.

class Firebird:

    username= "..."
    password= "..."

    def __init__(self, archive):
        self.archive = archive
        self.connection = None

   def connect(self):
       try:
           self.connection = connect(dsn=self.archive, user=self.username, password=self.password)
       except Error, e:
           print "Failed to connect to database", e
           exit(0)
Run Code Online (Sandbox Code Playgroud)

  • 如果你使用“from pystrict import strict \n @strict \n class Firebird: ...”,那么在 init 之外创建 attrs 将是一个运行时错误。 (2认同)