为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Qyouu 2019-11-12 09:45:57
使用python属性,我可以做到obj.y 调用一个函数,而不只是返回一个值。有没有办法用模块做到这一点?我有一个想要的情况module.y 调用一个函数,而不仅仅是返回存储在那里的值。
查看完整描述

3 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

只有新式类的实例才能具有属性。通过将其存储在中,可以使Python相信这样的实例是模块sys.modules[thename] = theinstance。因此,例如,您的m.py模块文件可能是:


import sys


class _M(object):

    def __init__(self):

        self.c = 0

    def afunction(self):

        self.c += 1

        return self.c

    y = property(afunction)


sys.modules[__name__] = _M()


查看完整回答
反对 回复 2019-11-12
  • 3 回答
  • 0 关注
  • 431 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信