我对Python中的类有问题。 我想知道如何调用在其他python程序的模块中创建的对象。在
让我举个例子。我在“课堂”里有这些东西_模块.py“文件
def objectCase():
object1 = class_name("object1")
object2 = class_name("object2")
object3 = class_name("object3")
def other_objectCase():
other_object1 = class_name("other_object1")
other_object2 = class_name("other_object2")
other_object3 = class_name("other_object3")
对于from class_module.py import *
,我想如果我使用objectCase()
函数,我的程序中就有这些对象(object1, object2, object3)
,如果我使用otherobjectCase()
函数,我会调用所有otherobject
。
但事实并非如此。
有什么问题吗?在
您正在函数内部创建局部变量。一旦函数返回,它们就会丢失。如果以后需要这些对象,
return
将它们发送给调用者并在调用代码中将名称绑定到它们
^{pr2}$查看Scopes and Namespaces的文档,名称}是
object1
、object2
和{objectCase()
函数的本地名称,因此在编写代码时,您将无法从主模块访问它们。在最典型的实现方法是返回这些变量:
然后当您调用它时,将返回的值赋回相同的名称:
^{pr2}$自动保持与局部变量相同的名称并不是一个好方法,但是在这里返回一个字典可能是合适的。您可以返回
object1, object2, object3
,而不是返回{'object1': object1, 'object2': object2, 'object3': object3}
,然后调用函数可以执行如下操作:如果您想
object1
。。。要在模块的命名空间中,您有几个选项:或者,如果不想在那里处理赋值,可以在函数中使用
^{pr2}$global
关键字:或者,您可以完全跳过该函数,将其作为顶层代码:
相关问题 更多 >
编程相关推荐