zoukankan      html  css  js  c++  java
  • python中的函数调用绑定,静态方法和类方法

    在C++的类中,有两种函数:普通成员函数和静态成员函数,差别是成员函数通过类实例调用,而静态成员函数通过类名调用。本质上,成员函数在调用的时候会默认把this指针作为第一个参数传入,而静态成员函数不需要绑定this指针。

    在python的类设计中,可以说将C++的这种隐式行为显式的表达出来了。

    class Test(object):
        def __init__(self):
            pass
        def  func1(self):
            pass
        @classmethod
        def func2(cls):
            pass
        @staticmethod
        def func3();
            pass
    

     普通实例成员函数在调用时会绑定self参数(也就是调用它的那个实例的引用)

    类方法会绑定类名

    静态方法完全不绑定

    注意静态方法和类方法的定义需要向上面那样使用函数修饰符。当然你也可能在老代码里看到这种做法(是等效的):

    class Test(object):
        def __init__(self):
            pass
        def  func1(self):
            pass
        def func2(cls):
            pass
        func2 = classmethod(func2)
        def func3():
            pass
        func3 = staticmethod(func3)
    
  • 相关阅读:
    JavaScripts广告轮播图以及定时弹出和定时隐藏广告
    JavaScript正则表达
    表单常用标签 和 属性
    html框架集
    Hbuilder 快捷键
    css 图片
    html input accept类型
    db2 sql
    js 数组排序
    html input size maxlength
  • 原文地址:https://www.cnblogs.com/hustxujinkang/p/4607861.html
Copyright © 2011-2022 走看看