Chinaunix

标题: 关于@staticmethod和instance()的问题 [打印本页]

作者: wudicc    时间: 2012-03-08 17:37
标题: 关于@staticmethod和instance()的问题
### 文件:a.py
class instanceClass:
    def __init__(self):
        print "instanceClass __init__"

    @classmethod
    def instance(cls):
        if not hasattr(cls, "_instance"):
            cls._instance = cls()
        return cls._instance
   

class bookManager(instanceClass):
    aa = {}
    bb = {}

    def __init__(self):
        pass
   
    @staticmethod
    def readinfo():
        print "test"

##文件 b.py
import a

bookManager.instance().readinfo  和 bookManager.readinfo() 有什么不同呢?

是否可以这样使用 readinfo()这个方法?
aa = bookManager
aa.readinfo()

作者: timespace    时间: 2012-03-08 20:57
代码都写出来了,执行下,结果很明显

对于static method,类类型和类实例调用均可,没区别
bookManager.instance().readinfo  和 bookManager.readinfo() 有什么不同呢?


一切皆数据,赋值后也没什么变化,还是类类型,该怎么用还怎么用
是否可以这样使用 readinfo()这个方法?
aa = bookManager
aa.readinfo()





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2