模块可以具有与对象相同的属性吗?

使用python属性,我可以做到


obj.y 

调用一个函数,而不只是返回一个值。


有没有办法用模块做到这一点?我有一个想要的情况


module.y 

调用一个函数,而不仅仅是返回存储在那里的值。


Qyouu
浏览 439回答 3
3回答

明月笑刀无情

只有新式类的实例才能具有属性。通过将其存储在中,可以使Python相信这样的实例是模块sys.modules[thename] = theinstance。因此,例如,您的m.py模块文件可能是:import sysclass _M(object):    def __init__(self):        self.c = 0    def afunction(self):        self.c += 1        return self.c    y = property(afunction)sys.modules[__name__] = _M()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python