我是Python新手,只是想更好地理解某些事情背后的逻辑。在
为什么要这样写(默认变量在__init__
中):
class Dawg:
def __init__(self):
self.previousWord = ""
self.root = DawgNode()
self.uncheckedNodes = []
self.minimizedNodes = {}
def insert( self, word ):
#...
def finish( self ):
#...
而不是这样:
^{pr2}$我的意思是-如果我可以轻松地将默认变量直接添加到类中,为什么还需要使用__init__
->?在
当您在类中创建变量时,它们就是类变量(它们对类的所有对象都是通用的),当您用
self.variable_name = value
初始化__init__
中的变量时,它们是按实例创建的,并称为实例变量。在例如
因为variable是一个类变量,
^{pr2}$is
运算符的计算结果是True
。但是,对于实例变量而且不能只使用类名访问实例变量。在
当你写这篇文章时:
这些是不是实例变量,它们是类变量(意思是:具有相同值的相同变量在类的所有实例之间共享。)另一方面,这:
^{pr2}$。。。正在声明实例变量,这意味着:类的每个实例的值都不同。正如你所看到的,每一个片段意味着完全不同的东西,你必须选择一个适合你的。提示:大多数时候你对实例变量感兴趣,因为类变量为你的对象定义了一种共享的全局状态,这很容易出错。在
相关问题 更多 >
编程相关推荐