个人理解的python的面向对象

在学习到python的面向对象的时候,发现python的类的的属性是有区分类的属性及对象的属性的,代码示例如下:

class test:
    a = 'test'
    def test1(self,a):
        self.a = a
    
    def show(self):
        print(test.a)
        
    def show1(self):
        test.a = 'for test'
        print(test.a)

t = test()
t.a = 'zjc'
t.test1('zjc')
print(t.a) t.show() t.show1()
test.a = 'to do something'
t.show()

在代码里面,a = 'test'中的a是属于类的属性,也就是说只有test这个类才能有效的去修改a这个属性的值,而通过对象示例话出来的t对test这个类的a的这个属性的修改是无效的,这个属于类的属性只能通过类来进行修改,如在类里面定义的show1()这个函数。而在函数test1(self,a)中的a是属于对象的属性,也就是说这个a是可以通过t这个实例化的对象来进行值的修改。

以上代码的输出结果如下:

zjc
test
for test
to do something

有兴趣的可以试一下,如有不对之处欢迎指正

原文地址:https://www.cnblogs.com/zengjc/p/5057780.html