"""
类似C语言中 struct 结构体,Python 中有对应的数据类型——空类
可直接通过类名调用
"""
class Employee: # empty class
pass
john = Employee() # Create an empty employee record
# Fill the fields of the record
john.name = 'John Doe'
john.dept = 'computer lab'
john.salary = 1000
"""
静态方法与类方法
静态方法和类方法的创建:
将它们分别包装在 staticmethod 和 classmethod 类的对象中。
静态方法的定义中没有参数self,可直接通过类来调用。
类方法的定义中包含类似于self的参数,通常被命名为cls。对于类方法,也可通过对象直接调用,但参数cls将自动关联到类。
引入装饰器(装饰器可用于包装任何可调用的对象,并且可用于方法和函数),可指定一个或多个装饰器,
为此可在方法(或函数)前面使用运算符@列出这些装饰器,指定多个装饰器时,应用的顺序与列出的顺序相反(从后往前调用)。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用。
普通方法: 默认有个self参数,且只能被实例化对象调用。
类方法: 默认有个 cls 参数,可以被类和实例化对象调用,需要加上 @classmethod 装饰器。
"""
class Classname:
@staticmethod
def fun():
print('静态方法')
@classmethod
def a(cls):
print('类方法')
# 普通方法
def b(self):
print('普通方法')
Classname.fun()
Classname.a()
C = Classname()
C.fun()
C.a()
C.b()
class MyClass:
"""静态方法与类方法测试"""
@staticmethod
def smeth():
print("This is a static method")
@classmethod
def cmeth(cls):
print("This is a class method of", cls)
MyClass.smeth()
MyClass.cmeth()