Python类属性与实例属性的区别及访问规则详解

青禾
青禾
发布时间:2026-10-14 | 2人浏览过
原创

本文深入解析Python中类属性与实例属性的核心区别。类属性由所有实例共享,可通过类或实例访问;实例属性仅属于特定对象。重点说明通过实例修改类属性会创建同名实例属性并屏蔽原类属性,而正确修改需通过类对象。

首先结合图示进行理解:

类属性类似于全局变量,为所有实例对象所共有;而实例属性则是各个实例对象私有的数据。

类属性是指类对象(如Tool)所拥有的属性,它被该类所有实例对象的实例方法所共有。在内存中,类属性仅存在一个副本,这与C++中的静态成员变量类似。对于公有的类属性,在类外部既可以通过类对象访问,也可以通过实例对象访问。

类属性


class People(object):
    name = 'Tom'  #公有的类属性
    __age = 12     #私有的类属性
 
p = People() 
print(p.name)           #正确
print(People.name)      #正确
print(p.__age)            #错误,不能在类外通过实例对象访问私有的类属性
print(People.__age)        #错误,不能在类外通过类对象访问私有的类属性

实例属性(对象属性)


class People(object):
    address = '山东' #类属性
    def __init__(self):
        self.name = 'xiaowang' #实例属性
        self.age = 20 #实例属性
 
p = People()
p.age =12 #实例属性
print(p.address) #正确
print(p.name)    #正确
print(p.age)     #正确
 
print(People.address) #正确
print(People.name)    #错误
print(People.age)     #错误

通过实例(对象)修改类属性


class People(object):
    country = 'china' #类属性
print(People.country)
p = People()
print(p.country)
p.country = 'japan' 
print(p.country)      #实例属性会屏蔽掉同名的类属性
print(People.country)
del p.country    #删除实例属性
print(p.country)

总结

若需在类外部修改类属性,必须通过类对象进行引用和修改。如果尝试通过实例对象引用并修改,将会生成一个同名的实例属性。这种方式修改的仅是实例属性,不会影响原有的类属性。此后,若通过实例对象引用该名称的属性,将强制屏蔽类属性,即实际引用的是新创建的实例属性。除非显式删除该实例属性,否则类属性将被隐藏。

Python:类属性和实例属性总结


#类属性:类对象所拥有的的属性,它被所有类对象的实例对象共有,类对象和实例对象可以访问
#实例属性:实例对象所拥有的属性,只能通过实例对象访问
class Student:
    name='李明'  #类属性
    def __init__(self,age):
        self.age=age  #实例属性
        pass
    pass
Student.name='邓超'   #通过类对象去修改类属性  因为name属于类属性
print('-----------李明的数据------------------')
lm=Student(18)   #实例化对象,并传入参数
print(lm.age)    #通过实例对象去访问实例属性
print(lm.name) #通过实例对象去访问类属性
# lm.name='华晨宇'  #不能通过实例对象对类属性进行修改
print(lm.name)
print('--------------张三的数据--------------')
zs=Student(20)
print(zs.age)
print(zs.name)
print('------------通过类对象Student去访问name----------------')
print(Student.name)
# print(Student.age)   注:不能通过类对象去访问实例属性

运行结果

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表