Python绑定方法与非绑定方法
python类中定义的函数分为两大类
1:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):
绑定方法分为绑定到类的方法和绑定到对象的方法,具体如下:
1.绑定到类的方法:用classmethod装饰器装饰的方法。
为类量身定制
类.boud_method(),自动将类当作第一个参数传入
(其实对象也可调用,但仍将类当作第一个参数传入)
2.绑定到对象的方法:没有被任何装饰器装饰的方法。
为对象量身定制
对象.boud_method(),自动将对象当作第一个参数传入
(属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说)
非绑定方法:用staticmethod装饰器装饰的方法
1.不与类或对象绑定,类和对象都可以调用,但是没有自动传值那么一说。就是一个普通工具而已
注意:与绑定到对象方法区分开,在类中直接定义的函数,没有被任何装饰器
装饰的,都是绑定到对象的方法,可不是普通函数,对象调用该方法会自动传值,而
staticmethod装饰的方法,不管谁来调用,都没有自动传值一说
对于绑定方法和非绑定方法举个例子
在类内部定义的函数,分为两大类:
一:绑定对象:绑定给谁就由谁来调用,谁来调用就会把调用者当作第一个参数自动传入
绑定到对象的方法:在类内定义的没有被任何装饰器修饰的
classFoo():
def__init__(self,name):
self.name=name
deftell(self):
print('名字是%s'%self.name)
f=Foo('james')
print(f.tell)
#>
绑定到类的方法:在类内定义的被装饰器classmethod修饰的方法
#def定义的两个都是绑定到对象的方法
classFoo():
def__init__(self,name):
self.name=name
@classmethod
deffunc(cls):#cls=Foo
print(cls)
print(Foo.func)
#>
二:非绑定方法:没有自动传值这一说法,简单说就是一个普通方法
非绑定方法:不与类或者对象绑定,谁都可以调用
classFoo():
def__init__(self,name):
self.name=name
@classmethod
deffunc(cls):#cls=Foo
print(cls)
@staticmethod
deffunc1(x,y):
print(x+y)
print(Foo.func1)
#
以上内容为大家介绍了Python绑定方法与非绑定方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。http://www.mobiletrain.org/

相关推荐HOT
更多>>
python ide是什么
python的ide是集成开发环境(IDE,IntegratedDevelopmentEnvironment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和...详情>>
2023-11-12 21:49:01
如何查看python中的错误
python常见的错误有1.NameError变量名错误2.IndentationError代码缩进错误3.AttributeError对象属性错误4.TypeError类型错误5.IOError输入详情>>
2023-11-12 16:58:58
python if判断在哪写
pythonif结构允许程序做出选择,并根据不同的情况执行不同的操作基本用法比较运算符根据PEP8标准,比较运算符两侧应该各有一个空格,比如:5==3...详情>>
2023-11-12 12:44:37
python中的sum函数怎么用?
python中的sum()函数用来进行求和计算,函数语法为:sum(iterable[,start]),此函数的返回值为计算的结果。函数参数有:iterable--可迭代对象,...详情>>
2023-11-12 11:03:35