Python : 类定义中,不加self.和加self.的区别【关于局部变量和全局变量的使用详解】

您所在的位置:网站首页 调用类的变量 Python : 类定义中,不加self.和加self.的区别【关于局部变量和全局变量的使用详解】

Python : 类定义中,不加self.和加self.的区别【关于局部变量和全局变量的使用详解】

2024-07-16 09:06| 来源: 网络整理| 查看: 265

先上代码,毕竟无代码言吊

>>> 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