在python种实现类的静态方法

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

题目:在python种实现类的静态方法

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

时间:2005年02月24日

方法一:使用__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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有