欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

在 Python 类中定义函数的三种方法及其应用

最编程 2024-05-26 11:31:23
...
class Test: # 类的静态变量 # 1. 类名和该类定义的对象都可访问/修改类的静态变量 # a. Test.stc_attr # b. obj1.stc_attr # 2. 所有该类别定义的对象共享的是同一个静态变量 stc_attr = 1 attr = 2 # 类的构造函数 def __init__(self,attr,attr1,attr2): self.attr = attr self.attr1 = attr1 self.attr2 = attr2 # 普通方法 def test_normalmethod(self): print("This is normalmethod") print("self.attr: ", self.attr) print("self.attr1: ", self.attr1) print("self.attr2: ", self.attr2) # 类方法 @classmethod def test_classmethod(cls): print("This is classmethod") print("stc_attr", cls.stc_attr) print("attr", cls.attr) # 类中的静态方法 # 功能: 与普通函数一样 # 调用: 类名 or 该类的实例对象 都可调用 @staticmethod def test_staticmethod(): print("This is staticmethod") def main(): obj1 = Test(11, 12, 13) obj2 = Test(21, 22, 23) print("...尝试调试分别调用这几种函数...") # 尝试调试分别调用这几种函数 # Test.test_normalmethod() # 应该是调用不了,报错; 不能使用类名调用,类的普通方法 Test.test_staticmethod() Test.test_classmethod() obj1.test_normalmethod() obj1.test_staticmethod() obj1.test_classmethod() obj2.test_normalmethod() obj2.test_staticmethod() obj2.test_classmethod() if __name__ == "__main__": main()

推荐阅读