我想将代码放在不同的类中,并将它们放入不同的文件中。但是这些类是相互依赖的。
main.py:
from lib import A, B
def main():
a = A()
b = B()
a.hello()
b.hello()
if __name__ == '__main__':
main()
lib / _ 初始化 _.py:
from a import A
from b import B
lib / a.py:
import lib.B
class A():
def __init__(self):
print "A"
def hello(self):
print "hello A"
b = B()
lib / b.py:
import lib.A
class B():
def __init__(self):
print "B"
def hello(self):
print "hello B"
a = A()
是否可以在Python中做到这一点?
编辑:
我收到此错误消息:
pydev debugger: starting
Traceback (most recent call last):
File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1397, in <module>
debugger.run(setup['file'], None, None)
File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1090, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "main.py", line 2, in <module>
from lib import A, B
File "lib/__init__.py", line 1, in <module>
from a import A
File "lib/a.py", line 1, in <module>
import lib.B
ImportError: No module named B
您可以在hello函数中导入其他模块,而不必在顶部导入模块。
class B():
def __init__(self):
print "B"
def hello(self):
import lib.A
print "hello B"
a = A()
问题内容: 尝试学习python时遇到了这个问题。考虑以下功能: s1和s2将打印什么? 运行该问题后,我发现print语句将打印12。似乎s1和s2的值未从函数中更改。我能想到的唯一解释是因为线条。 由于s1 [:]是一个副本,因此有道理s1的值在函数调用中不会改变。但是,因为的参数是(s1,s2),所以不确定tmp = s1 [:]之后是否。每当我做 它是对s1副本的引用,而不是s1本身。有人
我知道在Python中,如果我有: 我可以做以下操作来找到两者之间的交集: 但这种方法有一个问题:集合不能像列表那样维持秩序。如果我真的有: 我得到: 即使我更喜欢从第一个列表的顺序,即。: 是否有其他交叉点技术可以将生成的“交叉点集”保持与第一个列表相同的顺序?
问题内容: 我正在学习AngularJs的学习过程,发现几乎没有任何示例可用于现实世界。 我试图对如何使用最标准的组件提交表单并将其传递给PHP文件有一个清晰的了解。 我的小提琴。 有人在提交简单,无污染的表单方面有什么好的例子吗,这些表单会对我以及其他许多Angularjs初学者有所帮助。 当我说一个干净的表格时,我指的是这样的东西。 我的ng-app代码… 我猜我接下来要问的三个问题是… 我的
我想将一些代码从python 2移植到python 3,但由于导入错误而失败。因此,我试图通过创建2个基本的python文件来测试来摆脱移植本身并专注于导入。但是,我甚至无法让它们起作用。 所以我有2个文件 test.py: 和test2.py: 然而,结果是Py魅力中的这个错误: ImportError:无法从“__main__”(C:/Users/Username/test2.py)导入名称“
在二分图中,左边有n个节点,右边有m个节点。节点的顺序是从1到n和从1到m。左边的节点连接到右边的节点。没有连接所有节点。对于例如: 我想知道如何像一些用户提到的那样,通过使用二进制索引树来解决这个问题。我用O(n^2)algo求解,得到Tle。 这不是家庭作业。昨天我学习了BIT,正在寻找一些问题,所以我遇到了这个。告诉我诀窍。请不要写整个程序。
问题内容: 为什么我的猫没有nlegs属性? 我们应该从内部显式调用,还是应该做更有趣的事情? 如果我想创建一条5条腿的猫该怎么办,是否需要向该接口添加其他参数? 问题答案: 要建立在其他人都说过的基础上,是的,您需要调用父方法。 通常最好使用super。但是,在某些情况下(尤其是当您从多个类继承时),这可能是一个大难题。我将避免赘述,不乏讨论它的各种文章。(此外,其他一些“特殊”功能也有一些奇怪