函数与方法的区别
def func1():
pass
class A:
def func(self):
pass
# 1.通过打印函数名的方式区别什么是方法,什么是函数 (了解)
# print(func1) # <function func1 at 0x000001EE93C3F040>
# # 通过类名调用的类中的实例方法叫做函数
# print(A.func) # <function A.func at 0x000001EEAE73D670>
# # 通过对象调用的类中的实例方法叫做方法
# obj = A()
# print(obj.func) # <bound method A.func of <__main__.A object at 0x000001A98AE13C10>>
# 2.可以借助模块判断是方法还是函数
from types import FunctionType
from types import MethodType
# 总结: 如何判断类中的是方法还是函数
# 函数都是显性传参 方法都是隐性传参
-
python中一切皆对象,类在某种意义上也是一个对象,python中自己定义的类,以及大部分内置类,都是由type元类(构建类)实例化得来的
-
python中一切皆对象,函数在某种意义上也是一个对象,函数这个对象是从FunctionType这个类实例化出来的
-
python中一切皆对象,方法在某种意义上也是一个对象,方法 这个对象是从MethodType这个类实例化出来的
class A:
company_name = '老男孩教育' # 静态变量(静态字段) __iphone = '135' # 私有静态变量(私有静态字段) def __init__(self,name,age): # 特殊方法 self.name = name # 对象属性(普通字段) self.__age = age # 私有对象属性(私有普通字段) def func1(self): # 普通方法 pass def __func(self): # 私有方法 print(666) @classmethod # 类方法 def class_func(cls): """定义类方法 至少有一个cls参数""" print('类方法') @staticmethod # 静态方法 def static_func(): """定义静态方法 无默认参数""" print('静态方法') @property # 属性 def prop(self): pass