Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python tkinter中的可变替代_Python_Variables_Tkinter - Fatal编程技术网

Python tkinter中的可变替代

Python tkinter中的可变替代,python,variables,tkinter,Python,Variables,Tkinter,为什么这个代码不起作用 objects=[ ('o','label', 0, 1), ('g','label', 0, 2), ('e','label', 0, 3), ('r','label', 1, 0), ('w','label', 2, 0), ('x','label', 3, 0), ] for thing in objects: name = thing[0] type = thing[1] name = tk

为什么这个代码不起作用

objects=[
    ('o','label', 0, 1),
    ('g','label', 0, 2),
    ('e','label', 0, 3),
    ('r','label', 1, 0),
    ('w','label', 2, 0),
    ('x','label', 3, 0),
]

for thing in objects:
    name = thing[0]
    type = thing[1]
    name = tk.type()
我试图使用一个列表来定义tkinter小部件,以保持代码整洁。第一项是名称,然后是类型。我一直在犯这个错误

module has no attribute type
我知道我做错了什么我只是不知道如何修复它。如何使用存储在变量中的值来创建小部件

所以我想把
name=tk.type()
解释为
o=tk.label()

谢谢您的帮助。

请使用


现在,
name
是一个函数,所以您可以使用函数语法(
name()
)调用它。

Tkinter的标签小部件拼写为大写字母“L”,因此您需要

objects=[
    ('o','Label', 0, 1),
    ('g','Label', 0, 2),
    ('e','Label', 0, 3),
    ('r','Label', 1, 0),
    ('w','Label', 2, 0),
    ('x','Label', 3, 0),
]

它不起作用,因为列表中的第二列包含字符串,而不是类。也许您应该将实际类存储在对象列表中:

import Tkinter as tk
...
objects=[
    ('o',tk.Label, 0, 1),
    ('g',tk.Label, 0, 2),
    ('e',tk.Label, 0, 3),
    ('r',tk.Label, 1, 0),
    ('w',tk.Label, 2, 0),
    ('x',tk.Label, 3, 0),
]

您是否意识到您将两次分配给
name
?因此,
name=thing[0]
在您通过再次分配给
name
来覆盖
name
后没有任何效果。我知道。我想做的是让
name=tk.type()
实际创建一个名为“o”的标签,该标签的值存储为name。
import Tkinter as tk
...
objects=[
    ('o',tk.Label, 0, 1),
    ('g',tk.Label, 0, 2),
    ('e',tk.Label, 0, 3),
    ('r',tk.Label, 1, 0),
    ('w',tk.Label, 2, 0),
    ('x',tk.Label, 3, 0),
]