python - 尝试插入变量时出错
问题描述
我似乎无法弄清楚“超级”对象没有属性“ getattr ”是什么意思。我不知道为什么我会收到这个错误。
这是一个简单的猜谜游戏,我使用 Kivy 作为 GUI
import math
import kivy
kivy.require('1.11.0')
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
class Layout(GridLayout):
def __init__(self, **kwargs):
super(Layout, self).__init__(**kwargs)
self.cols = 3
self.guesses = 10
self.hasWon = False
self.pressedStart = False
self.ids.start.text = 'Start'
self.ids.gameText.text = 'Press Start when have chosen your number and are ready!'
self.ids.instructions.text = 'Choose any number between 0 and 20000 and I will guess it in 10 tries!'
self.max_guess = 20000
self.min_guess = 0
self.guess = math.ceil((self.max_guess - self.min_guess) / 2)
self.ids.guessText.text = f'Guess left: {self.guesses}'
def higher(self):
if self.pressedStart == True and self.hasWon == False:
self.guesses -= 1
self.min_guess += self.guess
self.ids.startText.text = f'Is your number {self.guess}?'
else:
pass
File "guessing_game.py", line 41, in higher
self.ids.startText.text = f'Is your number {self.guess}?'
File "kivy/properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
解决方案
问题 - AttributeError
self.ids.startText.text = f'Is your number {self.guess}?'
File "kivy/properties.pyx", line 863, in kivy.properties.ObservableDict.__getattr__
AttributeError: 'super' object has no attribute '__getattr__'
根本原因
这意味着属性或变量ids.startText
不存在于 self.ids
字典类型属性或对象中,Layout
.
推荐阅读
- javascript - 限制一次预订的座位数量
- amazon-cloudformation - 将复杂对象作为参数传递给子堆栈
- typescript - firebase thenable 参考返回处理
- java - 用整数值-1快速填充大文件
- python - 清除progressbar.FormatCustomText(python)显示的文本右侧的行
- android - 在 React Navigation 中从模式构建通知
- r - 带有分类和数值数据过滤器的闪亮应用程序
- node.js - 如何在不保存文件的情况下将节点 gd 图像编码为 base 64?
- variables - What is the order of local variables on the stack?
- python - 是否可以将 Python 中的 HTMLUnit 驱动程序与 Selenium 一起使用?