Python模块循环引用规范是怎么样的,python模块引用规范,我现在会用的方法:函数内
Python模块循环引用规范是怎么样的,python模块引用规范,我现在会用的方法:函数内
我现在会用的方法:
函数内引用每次在函数内引用 都感觉是因为不了解而害怕
而且觉得有点丑使用 “__all__” 白名单开放接口尽量避免 import *
抛砖引玉一下,希望引出除了技巧上还有经验上的知识。
补充一点,某些时候实在绕不开循环引用了(旧代码维护,补救,。。。),可以学习django.db.models.ForeignKey的做法。
ForeignKey用于定义一个model到另外一个model的多对一关系, 它的第一个参数可以是一个model类或者model name字符串
例如
class Country(models.Model): passclass Car(models.Model): manufacturer = models.ForeignKey('Manufacturer') # country = models.ForeignKey(Country) 直接以Country作为参数进行关联class Manufacturer(models.Model): # ... pass
同时接受model类型和字符串类型的考虑就是说,你可以在定义Manufacturer之前就先在Car中声明这个ForeignKey关系,在实际使用到的时候再通过model name去load对应的model。
这个方法同时也避免了两个model定义在不同的文件中的循环引用的问题
这是代码结构设计的问题,模块依赖和类依赖一样,想清楚了,就没问题了。
怎么说呢,如果老是觉得碰到循环引用,很可能是模块的分界线划错地方了。可能是把应该在一起的东西硬拆开了,可能是某些职责放错地方了,可能是应该抽象的东西没抽象
总之微观代码规范可能并不能帮到太多,重要的是更宏观的划分模块的经验技巧,推荐uml,脑图,白板等等图形化的工具先梳理清楚整个系统的总体结构和职责分工
编橙之家文章,
相关内容
- Sublime Text 2运行python报WindowsError错误原因是什么,pyth
- 问python文本内除空格方法,问python文本空格,比如:I[空
- Python判断用户IP安全合法性的方法是?,pythonip,如题,
- Discuz scrapy模拟登录Python源码如何写,scrapypython,向 Dis
- Python爬取百度指数数据思路,python爬指数思路,百度指数
- Python程序Sublime Text 3快捷键定义问题,pythonsublime,因为之
- 关于在android平台使用Python代码的小问题,androidpython,
- Python2版本列表推导二维数组问题求助,python2二维数组
- 如何调试Flask全其性能达到最佳,调试flask性能,有个需
- python 里面下载线_, 是什么意思?,python,在tensorflow一
评论关闭