![]() |
1
21
不需要进口CRoom
你不用
如果你真的
做
使用
旁注:
你可能有一个错误
|
![]() |
2
7
或者(更可能),您只需要在类的方法中使用CPerson(反之亦然)。如:
如果是第二种情况,那么就没有问题了——就像方法得到 将导入模块,而不是定义模块。你唯一的问题是如何参考它。很可能您正在做的事情如下:
对于循环引用模块,您无法做到这一点,因为在一个模块导入另一个模块时,原始模块体还没有完成执行,因此名称空间将不完整。相反,使用限定的引用。即:
在这里,python不需要查找名称空间上的属性,直到方法实际被调用,这时两个模块都应该完成了初始化。 |
![]() |
3
3
每个文件一个类
Python不使用静态定义的类型,如C++。定义方法函数时,不会正式定义该函数参数的数据类型。您只需列出一些变量名。希望客户机类能够提供正确类型的参数。 在运行时,当您发出方法请求时,Python必须确保对象具有该方法。笔记Python不会检查对象的类型是否正确——这无关紧要。它只检查是否有正确的方法。
之间的循环
这是
只要Person最终在执行它的命名空间中定义,它就可以正常工作。定义类时,不必知道Person。
这是
你的
|
![]() |
4
1
你可以给第二个别名。
|
![]() |
5
0
@洛特 如果我没有将任何内容导入到room模块中,则会得到一个未定义的错误(我将其导入到主模块中,如您所示)
另外,存在不同模块的原因是我在开始使用容器类(ieg the room)时遇到的问题已经有几百行了,所以我希望其中的项目(例如人员)在一个单独的文件中。 编辑: main.py
|