Python绑定方法与非绑定方法

发布时间:2022-04-26 09:41:11 人气:113 作者:多测师

  Python 类中定义的函数分为两大类

  1:绑定方法(绑定给谁,谁来调用就自动将它本身当作第一个参数传入):

  绑定方法分为绑定到类的方法和绑定到对象的方法,具体如下:

  1. 绑定到类的方法:用classmethod装饰器装饰的方法。

  为类量身定制

  类.boud_method(),自动将类当作第一个参数传入

  (其实对象也可调用,但仍将类当作第一个参数传入)

  2. 绑定到对象的方法:没有被任何装饰器装饰的方法。

  为对象量身定制

  对象.boud_method(),自动将对象当作第一个参数传入

  (属于类的函数,类可以调用,但是必须按照函数的规则来,没有自动传值那么一说)

  非绑定方法:用staticmethod装饰器装饰的方法

Python绑定方法与非绑定方法

  1. 不与类或对象绑定,类和对象都可以调用,但是没有自动传值那么一说。就是一个普通工具而已

  注意:与绑定到对象方法区分开,在类中直接定义的函数,没有被任何装饰器

  装饰的,都是绑定到对象的方法,可不是普通函数,对象调用该方法会自动传值,而

  staticmethod装饰的方法,不管谁来调用,都没有自动传值一说

  对于绑定方法和非绑定方法举个例子

  在类内部定义的函数,分为两大类:

  一:绑定对象:绑定给谁就由谁来调用,谁来调用就会把调用者当作第一个参数自动传入

  绑定到对象的方法:在类内定义的没有被任何装饰器修饰的

  class Foo():

  def __init__(self,name):

  self.name = name

  def tell(self):

  print('名字是%s'%self.name)

  f = Foo('james')

  print(f.tell)

  # >

  绑定到类的方法:在类内定义的被装饰器classmethod修饰的方法

  # def 定义的两个都是绑定到对象的方法

  class Foo():

  def __init__(self,name):

  self.name = name

  @classmethod

  def func(cls): #cls = Foo

  print(cls)

  print(Foo.func)

  # >

  二:非绑定方法:没有自动传值这一说法,简单说就是一个普通方法

  非绑定方法:不与类或者对象绑定,谁都可以调用

  class Foo():

  def __init__(self,name):

  self.name = name

  @classmethod

  def func(cls): #cls = Foo

  print(cls)

  @staticmethod

  def func1(x,y):

  print(x+y)

  print(Foo.func1)

  #

  以上内容为大家介绍了Python绑定方法与非绑定方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线