python中类方法、实例方法、静态方法、类属性、实例属性、私有属性案例测试
2022/1/8 17:06:40
本文主要是介绍python中类方法、实例方法、静态方法、类属性、实例属性、私有属性案例测试,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#python是动态语言,表现在可以在程序运行过程中添加属性、方法 #添加变量 class person(object): count=1 __index=99 def __new__(cls, *args, **kwargs): print("这是__new__方法的自动调用,该方法返回值为类object创建的类对象或者父类创建的类对象") return object.__new__(cls) def __init__(self,name,age): self.name=name self.age=age self.__girlfriend="莫莫" def test(self): print("这是实例方法test的调用") print("实例方法可以调用实例属性和类属性") print(self.age) print(f"我们正在使用实例方法来调用类公开属性count,其值为:{self.count}") print(f"我们也可以在实例方法中使用类对象来调用类公开属性count,其值为:{person.count}") print(f"我们正在使用实例方法来调用类私有属性__index,其值为:{self.__index}") print(f"我们在实例方法中使用类对象来调用类私有属性__index,其值为:{person.__index}") print(f"我们正在实例方法中调用实例公开属性name,其值为:{self.name}") print(f"我们正在实例方法中调用实例私有属性__girlfriend,其值为:{self.__girlfriend}") #print(f"我们可以在实例方法中调用私有实例方法__test1,调用结果为:{self.__test1()}") print("我们可以在实例方法中调用类方法,调用结果为:") person.classmethod1() person.__classmethod2() def __test1(self): print("这是实例私有方法__test1的调用") print("实例方法可以调用实例属性和类属性") print(f"我们正在使用实例方法来调用类公开属性count,其值为:{self.count}") print(f"我们也可以在实例方法中使用类对象来调用类公开属性count,其值为:{person.count}") print(f"我们正在使用实例方法来调用类私有属性__index,其值为:{self.__index}") print(f"我们在实例方法中使用类对象来调用类私有属性__index,其值为:{person.__index}") print(f"我们正在实例方法中调用实例公开属性name,其值为:{self.name}") print(f"我们正在实例方法中调用实例私有属性__girlfriend,其值为:{self.__girlfriend}") print(f"我们可以在实例方法中调用实例方法__test1,调用结果为:{self.test(self)}") print("我们可以在实例方法中调用类方法,调用结果为:") person.classmethod1(person) print("调用私有类方法的结果为:") person.__classmethod2(person) @classmethod def classmethod1(cls): print("这是类方法的调用,类方法只能访问类属性,我们可以用类方法对类属性进行更改") print(f"初始时类属性count的值为:{cls.count}") person.count=99 print(f"更改之后的count值为{cls.count}") print("在类方法中我们也可以调用实例方法:") person.test(cls) print("私有实例方法的调用结果为:") person.__test1(person) @classmethod def __classmethod2(cls): print("这是类私有方法的调用,当然我们也可以用该方法更改类属性") print(f"更改之前的count值为:{cls.count}") person.count=999 print(f"更改之后的count值为:{cls.count}") print("在类方法中我们也可以调用实例方法:") person.test(person) print("私有实例方法的调用结果为:") person.__test1(person) print("我们可以在类方法中通过类对象调用静态方法") person.staticmethod1() print("静态私有方法的调用结果是:") person.__staticmethod2() @staticmethod def staticmethod1(): print("这是静态方法的调用") print("在静态方法中引用对象属性必须用类对象进行引用") print(f"我们现在用类对象来调用类属性count,得出的count的值为:{person.count}(用person调用)") print(f"在静态方法中通过类对象可以调用实例方法") person.test() print("私有实例方法的调用结果为:") person.__test1() @staticmethod def __staticmethod2(): print("这是静态私有方法的调用") print("在静态私有方法中也可以使用类对象来调用类属性的引用") print(f"我们现在用类对象在静态私有方法中对类属性进行调用,其值为:{person.count}") print(f"在静态方法中通过类对象可以调用实例方法") person.test() print("私有实例方法的调用结果为:") person.__test1() def __str__(self): print("这是__str__方法的调用") def __del__(self): print("这是__del__方法的调用,其作用和C++中的析构函数一样") #python动态语言,在运行过程中添加属性和方法 #添加属性 def add(self): print("这是一个要添加到person类中的方法,当我们看到这句话时就完成了添加") import types person.add=types.MethodType(add,person) p=person("天山童姥",99) p.add() @classmethod def classmethods(cls): print("这是一个类方法,我们将要把这个类方法添加到person类中去") person.classmethods=classmethods p.classmethods() @staticmethod def teststaticmethod(): print("这是一个静态方法,我们成功的将该方法添加到了person类中") person.teststaticmethod=teststaticmethod p.teststaticmethod()
这篇关于python中类方法、实例方法、静态方法、类属性、实例属性、私有属性案例测试的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27Python编程基础教程
- 2024-12-27Python编程基础指南
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享