qin_yin 发表于 2020-11-16 00:42:39

第50讲疑惑

# 该模块用于让 Python 支持常量操作
class Const:
    def __setattr__(self, name, value):
      if name in self.__dict__:
            raise TypeError('常量无法改变!')

      if not name.isupper():
            raise TypeError('常量名必须由大写字母组成!')

      self.__dict__ = value
      
import sys
sys.modules = Const()

最后两行不太理解为什么,我把最后两行注释掉了,导入这个模块,就不能正常的使用,仅仅能赋个值(const.temp = 123)

wuyanzulqq 发表于 2020-12-8 18:33:25

大佬,这题的self.__dict__ = value怎么理解 这里的字典不是模块名(key)和模块(value)吗?
还有最后一句 sys.modules = Const()是将这个主程序的模块名修改为Const了吧?
求大佬解答,这题困扰了我很久了{:10_266:}

wuyanzulqq 发表于 2020-12-8 20:07:37

求大佬解惑{:10_250:}
页: [1]
查看完整版本: 第50讲疑惑