栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-__getattr__在模块上

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-__getattr__在模块上

你在这里遇到两个基本问题:

  1. __xxx__
    方法只在类上查找
  2. TypeError: can't set attributes of built-in/extension type 'module'

    (1)意味着任何解决方案还必须跟踪正在检查的模块,否则每个模块将具有实例替换行为;(2)表示(1)甚至是不可能的……至少不是直接的。

幸运的是,

sys.modules
对那里发生的事情并不挑剔,因此可以使用包装器,但是只能用于模块访问(即
import somemodule; somemodule.salutation('world')
,对于同模块访问,你几乎必须从替换类中提取方法并将其添加到
globals()eiher
中。类上的自定义方法(我喜欢使用
.export()
)或泛型函数(例如已经列出的答案)要记住的一件事:如果包装器每次都在创建一个新实例,而全局解决方案不是,最终,你会得到完全不同的行为。哦,你不能同时使用两者-一种是另一种。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410994.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号