-1

我正在尝试构建一个 for 循环,为列表中的某些字符串创建多个标签,然后在它旁边显示一个取决于字符串的数字。

有点难以解释,所以我将展示我的代码:

from tkinter import *

root = Tk()

class bballPlayer:
    def __init__(self):
        self.points = 0
    
    def incrementOnePoint(self):
        self.points += 1
    
    def getPoints(self):
        return self.points

players = ['James','Jones','Jr']
    
def addOnePoint():
    p.incrementOnePoint()
    global pointslabel
    pointslabel.config(text=str(p.points))

rowNumber = 0
for p in players:
    pointslabel = Label(root, text=str(p.points))
    pointslabel.grid(row=rowNumber, column=1)
    rowNumber += 1

rowNumber = 0
for p in players:
    btn = Button(root, text='Add Point', command=addOnePoint)
    btn.grid(row=rowNumber, column=0)
    rowNumber += 1

root.mainloop()

我在本节中遇到了我的问题(准确地说是第 24 行)。

rowNumber = 0
for p in players:
    pointslabel = Label(root, text=str(p.points))
    pointslabel.grid(row=rowNumber, column=1)
    rowNumber += 1

错误是这样说的:

Traceback (most recent call last):
  File "/Users/*****/mu_code/testcode.py", line 24, in <module>
    pointslabel = Label(root, text=str(p.points))
AttributeError: 'str' object has no attribute 'points'

非常感谢任何帮助,谢谢!

4

1 回答 1

0

您正在循环播放播放器,该播放器定义为播放器 = ['James','Jones','Jr'] 中的字符串列表。您似乎想使用 bballPlayer 类,但看起来您并没有使用它;或者你在某处覆盖了定义。

于 2020-08-10T02:01:25.963 回答