科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道应用软件 在python种实现类的静态方法

在python种实现类的静态方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

讲述在python种实现类似java的static method的方法

作者:snowway_ 来源:CSDN 2008年5月28日

关键字: 静态 python 软件

  • 评论
  • 分享微博
  • 分享邮件

方法一:使用__call__
eg:
import os
class Command:
    class _StaticCommand:
        def __call__(self,command):
            os.system(command)

    run = _StaticCommand()

if __name__ == '__main__':
 Command.run("dir /w") #windows
 Command.run("ls -l") #unix linux

实现原理:定义一个内部类(_StaticCommand),外层类(Command)有一个类属性run指向_StaticCommand的实例,关键在于定义
_StaticCommand的特殊方法__call__,这个方法当_StaticCommand的实例使用()时刻回调,(比如:_StaticCommand()()),
就好像实例是一个方法一样

方法二:使用python2.2以后提供的staticmethod类
import os
class Command:
 def run(command):
  os.system(command)

 run = staticmethod(run) #staticmethod接受构造参数函数引用,此时run成为staticmethod类实例

if __name__ == '__main__':
 Command.run("dir /w") #windows
 Command.run("ls -l") #unix linux


    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章