python : 实例变量与类变量

定义:

	实例变量(属性)与类变量(属性)都是类通过实例化创建的对象的数据成员。

实现方法:

	类变量在类中定义,并且定义在方法之外,对于实例化的对象来说是公用的。
	实例变量是在方法中使用self.name来定义的

引用方式:

	类变量的引用方式有两种:类名.变量名  和  对象名.变量名
	实例变量的引用方式: 对象名.变量名

实例:

# class.py
class Employee:
    empount = 0     # 类变量(类属性)

    def __init__(self, name, salary):
        self.name = name        # 实例变量(实例属性)
        self.salary = salary    # 实例变量(实例属性)
        Employee.empount += 1

    def displaycount(self):
        auto = 3                # 局部变量
        print("total employee:{}".format(Employee.empount))

obj1 = Employee("lining", 8000)
obj2 = Employee("anta", 10000)

obj1.empount = 100				# 又添加了一个实例变量

obj1.displaycount()
print(obj1.empount)
print(Employee.empount)

"""
    输出:
        total employee:2 
        100
        2
""" 

分析:

	代码中empount变量是类变量,但  obj1.empount = 100				# 又添加了一个实例变量
	所以就出现了类变量名和实例变量名相同的情况,采用实例名的引用方法,会先查找实例变量然后查找类变量,
	所以语句:print(obj1.empount)  输出结果是obj1对象添加的一个实例属性,并不是访问的类变量。
	从语句:obj1.displaycount( )和print(Employee.empount)可以看出类变量是对象obj1和obj2所共有的。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值