class Person:
@classmethod #类方法
def cls_mtd(cls):
print(cls)
Person.cls_mtd() # <class '__main__.Person'>
Person().cls_mtd()
print()
class Person2:
def method(self, a):
print("normal method", f"self is {self}, {a}")
@staticmethod
def static_mtd(): # 静态方法 , 不会注入任何东西,实例和类都可以调用
print('static')
Person2.static_mtd()
Person2().static_mtd()
print(Person2.__dict__)
tom = Person2()
# tom.method()
tom.method('abc')
# ---------------------------------------
class Person3:
def __init__(self, name, age):
self.name = name
self.age = age
def show_age(self):
return self.age
@classmethod
def show_cls_name(cls):
return cls.__name__
bob = Person3('bob', 30)
print(bob.show_age())
print(bob.show_cls_name())
print(Person3.show_cls_name())
# print(Person3.show_age())