绑定方法和非绑定方法
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() # 对象来调用
# 我是静态方法,谁也不绑定
# 我是静态方法,谁也不绑定
静态方法(非绑定方法)的作用:
跟类和对象都没有关系时候,可以定义成静态方法,一般在类内部使用,类外部也可以使用
就是一个普通函数,想把它拿到类中管理,就可以定义成静态方法
以上是关于绑定方法和非绑定方法的主要内容,如果未能解决你的问题,请参考以下文章