Python : 类定义中,不加self.和加self.的区别【关于局部变量和全局变量的使用详解】 |
您所在的位置:网站首页 › 调用类的变量 › Python : 类定义中,不加self.和加self.的区别【关于局部变量和全局变量的使用详解】 |
先上代码,毕竟无代码言吊 >>> class k(): c = 6 def __init__(self): self.c=1 >>> k.c 6 >>> mk = k() >>> mk.c 1 差别就在这个地方,第一个C实例是无法调用的,是类中的局部变量,只有父类可以调用,而且,单独输入C也是无法调用的,说明不是全局变量。 再看代码 >>> c = 4 >>> class k(): def __init__(self): self.c=1 c = 6 def p(self): print(c) >>> mk = k() >>> mk.p() 4 >>> k.c Traceback (most recent call last): File "", line 1, in k.c AttributeError: type object 'k' has no attribute 'c' 此时,把常量定义放在初始化中,不能在外部调用,内部也无法使用,因为在__init__方法中定义便是__init__方法的局部变量。 所以,需要弄清楚常量定义的位置代表的管辖范围,方法中的局部变量无法在类中调用,内部优先调用全局变量,外部无法调用局部变量,除非变量前有申明,如最开头的代码。 在调用变量的时候一定要注意,如果目标是全局变量不需要注意,但是调用局部变量一定要添加申明,eg, k.c |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |