静态方法怎么使用


本文摘自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第三方库安装在哪

Python的str强转int时遇到的问题

Python判断字符类型怎么做

Python set是什么类型

Python中rjust是什么意思

__init__ 在 Python 中的用法

Python的线程join怎么用

Python统计单词出现的次数_Python

Python爬虫需要安装哪些库

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




打赏

取消

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

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

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

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

评论

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