1. 函数:
# 定义函数
def 函数():
pass
# 调用方法
x = 函数()
# type(函数):<class 'function'>
2. 类:
(1)类中的方法:
- 普通方法:带有默认参数self的方法
- 静态方法:带有@staticmethod装饰器的方法,没有默认参数
- 类方法:带有@classmethod装饰器的方法,带有默认参数cls
# 定义类
class 类():
def 普通方法(self):
print('这是普通方法')
@staticmethod
def 静态方法():
print('这是静态方法')
@classmethod
def 类方法(cls):
print('这是类方法')
(2)调用方式1-实例:
x = 类()
x.普通方法()
# 打印:这是普通方法
x.类方法()
# 打印:这是类方法
x.静态方法()
# 打印:这是静态方法
(3)调用方式2-类名调用
类.静态方法()
# 打印:这是普通方法
类.类方法()
# 打印:这是类方法
类.普通方法()
# 程序报错:TypeError: 普通方法() missing 1 required positional argument: 'self'.
- 函数、静态方法、类方法、普通方法的区别
print(type(函数))
# <class 'function'>
print(type(x.普通方法))
# <class 'method'>
print(type(x.类方法))
# <class 'method'>
print(type(x.静态方法))
# <class 'function'>
- 函数是定义在类外面的,可以有参数也可以没有参数,调用时如果函数定义中有必须参数,调用时必须传入必须参数,其他参数可不传;
- 类中的普通方法带有默认参数self,需要用实例对象调用。调用时忽略self,其他参数同函数处理原则;
- 类中的静态方法没有默认参数,可用实例对象调用也可以用类名调用,参数同函数处理原则;
- 类中的类方法带有默认参数cls,可用实例对象调用也可以用类名调用,参数同函数处理原则。
- 注:self和cls是一般约定的默认参数名称,可以更改为其他名称且功能不受影响,但是一般不建议更改