• 技术文章 >后端开发 >Python教程

    静态方法怎么使用

    anonymityanonymity2019-05-27 11:13:58原创4216
    静态方法和类方法在python2.2中被引用,经典类和新式类都可以使用。同时,一对内建函数:staticmethod和classmethod被引入,用来转化类中某一方法为这两种方法之一。

    静态方法是指类中无需实例参与即可调用的方法(不需要self参数),在调用过程中,无需将类实例化,直接在类之后使用.号运算符调用方法。

    通常情况下,静态方法使用@staticmethod装饰器来声明。

    示例代码:

    class ClassA(object):
        @staticmethod
        def func_a():
            print('Hello Python')
    if __name__ == '__main__':
        ClassA.func_a()
        # 也可以使用实例调用,但是不会将实例作为参数传入静态方法
        ca = ClassA()
        ca.func_a()

    这里需要注意的是,在Python 2 中,如果一个类的方法不需要self参数,必须声明为静态方法,即加上@staticmethod装饰器,从而不带实例调用它。

    而在Python 3中,如果一个类的方法不需要self参数,不再需要声明为静态方法,但是这样的话只能通过类去调用这个方法,如果使用实例调用这个方法会引发异常。

    class ClassA(object):
        def func_a():
            print('Hello Python')
    if __name__ == '__main__':
        ClassA.func_a()
        # 以下使用实例调用会引发异常
        ca = ClassA()
        ca.func_a()

    异常信息:

    func_a() takes 0 positional arguments but 1 was given

    因为func_a没有声明为静态方法,类实例在调用func_a时,会隐式地将self参数传入func_a,而func_a本身不接受任何参数,从而引发异常。

    以上就是静态方法怎么使用的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:python
    上一篇:对于初学者如何理解 @classmethod 和@staticmethod 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Python如何测量脚本运行时间• 在 Python 中如何得到对象的所有属性• 在Python中调用外部命令是什么• python如何在循环中获取下标
    1/1

    PHP中文网