栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > 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号