Python中的类变量和成员变量

代码演示:

class Test(object):
    a = 100              # a是类变量,可以由类名直接调用,也可以由类的对象来调用

    def __init__(self):
        self.b = 200     # b是成员变量,可以由类的对象来调用

    def fcn(self):
        c = 300          # c不是成员变量,只是函数fcn内部的局部变量
        self.d = 400     # d也不是成员变量,虽然以self给出,但并没有构造函数中初始化

inst = Test()

print(Test.a)   #100
print(inst.a)   #100

print(Test.b)   #报错 AttributeError: type object 'Test' has no attribute 'b'
print(inst.b)   #200

print(Test.c)   #报错 AttributeError: type object 'Test' has no attribute 'c'
print(inst.c)   #报错 AttributeError: 'Test' object has no attribute 'c'

print(Test.d)   #报错 AttributeError: type object 'Test' has no attribute 'd'
print(inst.d)   #报错 AttributeError: 'Test' object has no attribute 'd'

说明:

这里,a是类变量,可以由类名直接调用,也可以有对象来调用;

b是成员变量,可以由类的对象来调用,这里可以看出来成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;

c不是成员变量,它只是函数fcn()内部的局部变量;

d也不是成员变量,虽然以self.给出,但并没有在构造函数中初始化。

print()后面#接着的是运行结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值