【发布时间】:2012-12-21 19:56:44
【问题描述】:
我有 一个字符串列表 my_list,其中包含 n 个项目。 此列表在运行时逐个输入字符串。 假设现在有 4 个项目。
示例:my_list = ['one', 'two', 'three', 'four']
我有一个自定义对象,名为my_object,我需要使用循环创建其中的实例,为列表中的每个项目。
我的问题:
通常,我将对象创建为:**my_obj** = MyObj(),我可以使用 my_obj 变量来获取它并调用它的方法等。
因为我需要通过列表操作动态地进行创建;
- 如何创建对象实例?
- 如何获取对象实例并调用其方法?
我知道它很旧,可能是错误的和过时的,但在 VisualBasic 中,对于视觉项目,这可能是这样执行的:
my_obj[动态变量] = ...
我不希望这涉及到全局变量或任何东西。
我该如何处理这个问题?
更多背景:
*我正在使用 Qt (PySide - PyQt) 开发应用程序。 我有一个定制的小部件(my_class) 我需要用这个对象的动态创建的实例填充一个可视列表(QGridLayout),然后调用它们的方法。*
谢谢。
显示我正在创建对象并尝试使用它们的代码:
class my_class(object):
def __init__(self):
print 'hi'
def talk(w):
print w
my_list = ['one', 'two']
### code that won't work starts from here
for i in list:
i = my_class()
my_list[1].talk()
【问题讨论】:
-
请展示实际代码,说明您正在尝试做什么以及它不工作的原因。
-
代码到底是什么?我很想这样做,但这就是我要问的。我有一个随机的自定义类,它还没有做任何事情。我的问题是如何创建动态实例,我不知道它的代码。
-
你通过调用一个类来创建一个对象,例如
MyClass()。无需将其分配给变量。您的“问题”听起来很愚蠢,以至于我认为我们缺少上下文。显示代码。 -
@Phil:显示您创建对象并尝试使用它们的代码。
-
所有类和对象都是动态创建的(即在运行时)。没有“非动态”的方式来做到这一点。要在以后检索它,只需确保它以某种方式在范围内(通过变量、属性、集合等)并获取它。
标签: python qt python-2.7 pyqt pyside