码迷,mamicode.com
首页 > 其他好文 > 详细

绑定方法与非绑定方法

时间:2019-10-03 01:08:17      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:ret   地方   定义   person   绑定   例子   int   并且   icm   

一. 绑定方法

  绑定方法可以是对象的绑定方法, 类的绑定方法

  绑定方法的特殊之处在于绑定给谁就用谁来调用,并且会把自身传过来

  类的绑定方法: 绑定给类的, 类来调用, 会把类自身传过来

  没有装饰器装饰的函数是对象的绑定方法

class Person:
    def __init__(self, name, age)
        self.name = name
        self.age = age
    @classmethod     # 类的绑定方法
    def taxt(cls):
        print("我是类的绑定方法")
        # 类实例化产生对象,返回
         return cls(‘panshao‘, 18)

# 类的绑定对象由类来进行调用

Person.taxt()

  在上面例子当中,类实例化产生对象以后可以通过person=Person.taxt()来调用,  他就相当于person2 = Person(‘panshao‘, 18),那么类的绑定方法用在什么地方?他是用在不需要通过对象,只需要通过类就能获取到一些东西的时候,就用类的绑定方法,

在类的绑定方法中对象也可以调用,就是将这个对象当做类传入,一般不会用对象来调用类的绑定方法

 

二. staticmethod(非绑定方法)

  绑定给类的用classmethod, 绑定给对象的什么都不加

  staticmethod 定义在类的内部, 普通方法, 谁都不绑定, 对象和类都可以调用,但是不会自动传值

class Person:
    def __init__(self, name, age)
        self.name = name
        self.age = age
    @staticmethod     # 类的非绑定方法   是一个普通函数, 只不过是写在类内部的
    def taxt():
        print("我是静态方法,谁都不绑定")

# 类可以来调用
Person.taxt()

# 对象来调用
p = Person(‘panshao‘, 18)
p.taxt()

  静态方法的作用: 跟类和对象都没关系的时候用静态方法,用在类的内部,也可以用在外部

 

绑定方法与非绑定方法

标签:ret   地方   定义   person   绑定   例子   int   并且   icm   

原文地址:https://www.cnblogs.com/panshao51km-cn/p/11618870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!