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

python循环再次导入(又是该设计有什么问题)

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

python循环再次导入(又是该设计有什么问题)

循环进口本质上不是一件坏事。

team
代码自然地依赖,
user
而使用进行
user
某些操作
team
。

这里最糟糕的做法是

from module importmember
。该
team
模块正在尝试
user
在导入时获取该类,而该
user
模块正在尝试获取
team
该类。但是
team
该类尚不存在,因为您仍处于
team.py
when
user.py
运行的第一行。

而是,仅导入模块。这样可以更清晰地命名空间,使以后的猴子修补成为可能,并解决了导入问题。因为您只是在导入时导入 模块 ,所以您不在乎尚未定义 模块
中的 类 。等到您开始使用该类时,它就会成为现实。

因此,test / users.py:

import test.teamsclass User:    def setTeam(self, t):        if isinstance(t, test.teams.Team): self.team = t

测试/teams.py:

import test.usersclass Team:    def setLeader(self, u):        if isinstance(u, test.users.User): self.leader = u

from test import teams
然后
teams.Team
,如果您想
test
少写,也可以。那仍然是导入模块,而不是模块成员。

另外,如果

Team
和
User
比较简单,请将它们放在同一模块中。您无需遵循Java每个文件一个类的习惯用法。该
isinstance
测试和
set
方法也尖叫unpythonic-
Java的疣给我; 根据您在做什么,最好使用普通的,非类型检查的
@property
。



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

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

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