类属性:python中一切皆为对象,首先要明白两个概念类对象和实例对象。
class Tool(object):
count = 0
def __init__(self,name):
self.name = name
# 让类属性的值+1
Tool.count += 1
print(id(Tool("锤子"))) # 打印类对象的内存地址
a = Tool("锤子")
print(id(a)) # 打印实例属性
通过以上可以发现:
在程序运行时,类 同样 会被加载到内存 在 Python 中,类 是一个特殊的对象 —— 类对象 在程序运行时,类对象 在内存中 只有一份,使用 一个类 可以创建出 很多个对象实例 除了封装 实例 的 属性 和 方法外,类对象 还可以拥有自己的 属性 和 方法 使用对象名访问类属性由上差不多知道类属性是个什么东东,类属性的调用一般分为内部调用和外部调用,内部调用方位为:
类名.类属性
外部调用为:
类名.类属性
实例名.类属性
那么使用对象名访问类属性会不会直接修改了类属性呢?
class Tool(object):
count = 0
def __init__(self,name):
self.name = name
# 让类属性的值+1
Tool.count += 1
# 1.创建工具对象
tool1 = Tool("斧头")
tool2 = Tool("锄头")
tool3 = Tool("镰刀")
#对象名修改类方法
tool3.count = 99
print("工具对象总数 %d" % tool3.count)
print("===> %d" % Tool.count)
输出:
工具对象总数 99
===> 3
可以看出那怕访问了类属性并且做出了修改,也不会真正改变了类属性,其实只是创建了一个实例属性。
属性获取机制Python中有一个向上查找机制:
原创文章 11获赞 8访问量 1897
关注
私信
展开阅读全文
作者:Cuinn_CK