千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Python绑定方法与非绑定方法

Python绑定方法与非绑定方法

来源:千锋教育
发布人:xqq
时间: 2023-11-07 22:52:00 1699368720

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/


tags: python培训
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT