私はtkinterでハングマンゲームを作っていますが、再起動ボタンを押したときにボタンを押して消えるようにしようとしています。私はまだコードを学習しており、コードを明確にするためにクラスを組み込むように調整しようとしました。これは私がボタンウィジェットを作成するために使用したコードです:継承の後にクラス変数を取得する
class Buttons:
def __init__(self, letter, column, row):
self.letter = letter
self.column = column
self.row = row
def create(self):
column = self.column
row = self.row
letter = self.letter
self = tk.Button(window, text=self.letter, bg = colour, font=FONT,
command=lambda : check(letter))
self.place(relx=column, rely=row)
そして私はこのようにボタンを配置し、そのすべてが正常に動作します:私はしかし、何をしたいのか
A = Buttons('A', column1, row1).create()
は、アクセスですクラス定義の外に 'self.letter'、 'self.row'、 'self.column'がありますが、 'A.letter'を使用しようとするとオブジェクトがNonetypeであり、属性文字はありません。 トレースバック(最新の呼び出しの最後):
File "C:\Users\cameron\Documents\Python\Hangman\Hangman v2.1.py", line 227, in <module>
print(A.letter)
AttributeError: 'NoneType' object has no attribute 'letter'
誰もが、私はこれにアクセスできる方法を知っていますか?
あなたは
コードで継承は使用されません。完全なトレースバックとエラーが発生したコードを(状況によって)投稿してください。 – syntonym
'A'はNoneです(したがって" Buttons "ではなく、" letter "という属性もありません)。 'A'を割り当てるコードを表示します。 – syntonym
Aが割り当てられたコードを含めました。A = Buttons( 'A'、column1、row1).create() –