内容简介:我有一个库类,它取决于它是如何导入的,一个依赖于self .__ module__的方法来识别更改行为 – 取决于我是相对还是绝对地导入它.有没有办法强制类的self .__ name__属性绝对回归?我意识到一个解决方案是强制每个人以相同的方式导入子类,但是想知道是否有办法从库的角度强制它.总结结构
我有一个库类,它取决于它是如何导入的,一个依赖于self .__ module__的方法来识别更改行为 – 取决于我是相对还是绝对地导入它.有没有办法强制类的self .__ name__属性绝对回归?
我意识到一个解决方案是强制每个人以相同的方式导入子类,但是想知道是否有办法从库的角度强制它.
总结结构
我在库中有一个模块
project/ mylib/ foo.py LibraryClass def get_name(self): return "%s.%s.%s" % \ (self.__module__, self.__class__.__name__, self.some_init_property) prog/ utils.py fooClass(LibraryClass) bar.py def some_func() #see below
在mylib中,我有一个导入器通过我们的django项目的设置文件中的classname字符串导入LibraryClass的所有子类.
基本上,我们看到的行为取决于您的导入方式.
所以我在bar.py中观察到两种行为:
def some_func_absolute(): from prog.utils import fooClass f = fooClass("lalala") print f.get_name() #prints prog.utils.fooClass.lalala
与
def some_func_relative(): from utils import fooClass f = fooClass("lalala") print f.get_name() #prints foo.fooClass.lalala
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)
- 将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化
- [MySQL]备份和导入
- Android Studio 导入源码
- Python导入订单是否重要
- hive 导入 mysql文本
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。