belf 发表于 2020-4-19 09:45:52

关于python第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()

不太理解最后一句代码的意思,我的理解如下:
1. sys.modules是指被导入的所有模块,
2. __name__表示的当前模块的名字,
3. 那么sys.modules = Const()的意思就是将当前模块实例化为类Const的一个对象。

不知道我这样的理解对不对,希望得到指正,谢谢!
页: [1]
查看完整版本: 关于python第50讲模块部分的课后题