zoukankan      html  css  js  c++  java
  • 绑定方法和非绑定方法

    绑定方法和非绑定方法

    绑定方法

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

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

    类的绑定方法

    用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()   # 对象来调用
    
    # 我是静态方法,谁也不绑定
    # 我是静态方法,谁也不绑定
    

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

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

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

  • 相关阅读:
    Wiin10 深色模式 暗色 省电 经济 护眼dark mode energy saving ecol
    云主机终端现实中文
    systemctl enable与systemctl start的区别
    centos技巧
    用国内的vps登录亚马逊的ec2
    小米 redmi note 8 打开开发者选项
    javascript数组、对象和Null的typeof同为object,区分解决办法
    组件中是否可以判断slot是否有内容?
    xlsx-style 行高设置
    修改xlsx-style 源码 解决报错
  • 原文地址:https://www.cnblogs.com/yunluo/p/11429868.html
Copyright © 2011-2022 走看看