静态方法怎么使用


本文摘自php中文网,作者anonymity,侵删。

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

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

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

示例代码:

1

2

3

4

5

6

7

8

9

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参数,不再需要声明为静态方法,但是这样的话只能通过类去调用这个方法,如果使用实例调用这个方法会引发异常。

1

2

3

4

5

6

7

8

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本身不接受任何参数,从而引发异常。

以上就是静态方法怎么使用的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python中四种锁的使用示例(代码)

Python如何读取excel

Python类方法和静态方法的区别

Python如何对excel数据进行处理

Python 爬虫网页登录的实现

Python怎么下载?

string在Python中是什么意思

怎么把字符串解析成浮点数或者整数

Python扩展内置类型的实现方法分析

Python学起来难吗

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...