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

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

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

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

  • 相关阅读:
    node.js前后台交互示例 -- 使用node.js实现用户注册功能
    window对象
    ajax模仿iframe
    判断浏览器是否支持某些新属性---placeholder兼容问题解决
    jQuery简单tab按钮切换
    js函数的解析与执行过程
    js全局的解析与执行过程
    OKR解读
    《富爸爸穷爸爸》读书笔记【2020207-19】
    《金字塔原理》读书笔记【2020111-30】一读+二读
  • 原文地址:https://www.cnblogs.com/yunluo/p/11429868.html
Copyright © 2011-2022 走看看