绑定方法和非绑定方法

Posted yunluo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绑定方法和非绑定方法相关的知识,希望对你有一定的参考价值。

绑定方法和非绑定方法

绑定方法

绑定方法:绑定给谁就是谁来调用,而且会自动把它本身当做第一个参数传入。

绑定方法分为类的绑定方法和对象的绑定方法

类的绑定方法

用classmethod装饰器装饰的方法。

为类量身定制

对象可以调用,但是仍将该对象的类当做第一个参数传入

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    @classmethod
    def test(cls):
        print('这是类的绑定方法')

Person.test()

# 这是类的绑定方法

类的绑定方法用在什么地方?

不需要通过对象,只需要通过类就能完成某些事的时候,就把该方法定义为类的绑定方法

对象的绑定方法

没有被任何装饰器装饰的方法。

为对象量身定制

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

非绑定方法

用staticmethod装饰器装饰的方法

定义在类内部,不与类或对象绑定,类和对象都可以调用,但是没有自动传值的说法,就是一个普通方法

注意:与绑定到对象的方法区分开,在类中直接定义的函数,没有被任何装饰器装饰的,都是绑定到对象的方法,对象调用该方法就会自动传值,但是staticmethod装饰的方法,不管谁来调用,都没有自动传值的说法

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    @staticmethod
    def static_method():
        print('我是静态方法,谁也不绑定')

Person.static_method()   # 类来调用
p = Person('xiaowu', 18)   
p.static_method()   # 对象来调用

# 我是静态方法,谁也不绑定
# 我是静态方法,谁也不绑定

静态方法(非绑定方法)的作用:

  • 跟类和对象都没有关系时候,可以定义成静态方法,一般在类内部使用,类外部也可以使用

  • 就是一个普通函数,想把它拿到类中管理,就可以定义成静态方法

以上是关于绑定方法和非绑定方法的主要内容,如果未能解决你的问题,请参考以下文章

绑定方法和非绑定方法

Python中的绑定方法和非绑定方法

面向对象——绑定方法和非绑定方法

绑定方法和非绑定方法

绑定方法和非绑定方法

5.10 绑定方法和非绑定方法