1、 Python中的7种可调用对象
Python中有七种可调用对象,可调用对象可使用内置函数callable来检测
用户自定义的函数:使用def语句或者lambda表达式创建的函数。
内置函数:使用C语言实现的函数,如len、sum或者time.strftime
内置方法:使用C语言实现的方法,如dict.get()
类方法:在类的定义体中定义的函数
类:在调用类时会运行类的__new__方法创建一个实例,然后运行__init__方法,初始化实例,最后把实例返回给调用方。Python中没有new运算符,所以调用类相当于调用函数。
类的实例:如果类定义了__call__方法,那么它的实例可以作为函数进行调用。并且__call__方法可以进行自定义重写。
生成器函数:使用yield关键字的函数或方法。调用生成器函数返回的是生成器对象。
2、python 类方法 静态方法
属性:
公有属性 (属于类,每个类一份)
普通属性 (属于对象,每个对象一份)
私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问)
方法:(按作用)
构造方法:__init__()
析构函数:__del__()
python中的方法:
类方法也可以进行细致的划分,具体可分为类方法、实例方法和静态方法。采用 @classmethod 修饰的方法为类方法;采用 @staticmethod 修饰的方法为静态方法;不用任何修改的方法为实例方法。
其中 @classmethod 和 @staticmethod 都是函数装饰器
接下来介绍这 3 种类方法。
实例方法(普通方法):默认有个self参数,且只能被对象调用。
静态方法: 用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用,不需要创建对象,不会隐式传递self,也不能访问类属性。
类方法:用 @classmethod 装饰的带 self 参数的方法叫做类方法,默认有个 cls 参数,可以被类和对象调用,类方法中的self是类本身,调用方法时传的值也必须是类的公有属性,就是说类方法只能操作类本身的公有字段
实例方法中的特殊方法:
1、私有方法(方法前面加两个下划线)
2、属性方法:property属性函数(@property修饰),它是实例方法中的特殊方法。
类实例方法
通常情况下,在类中定义的方法默认都是实例方法,类的构造方法理论上也属于实例方法,只不过它比较特殊。
比如,下面的类中就用到了实例方法:
classTest(object):#类构造方法,也属于实例方法
def __init__(self):
self.name= "name"self.add= ""
#下面定义了一个say实例方法
defcall(self):print(