クラス内でメソッドを呼び出そうとしています。その呼び出し以下の最後の行で、self.z()Pythonのクラス内でメソッドを呼び出す
class Wait:
def __init__(self,a):
self.a = a
def countdown(self,a):
for remaining in range(self.a, 0, -1):
sys.stdout.write("\r")
sys.stdout.write("{:2d} seconds remaining.".format(remaining))
sys.stdout.flush()
time.sleep(1)
sys.stdout.write("\rWait Complete! \n")
def z(self):
self.countdown(100)
self.z()
はしかし、私はこのエラーを取得する:
Traceback (most recent call last):
File "./countdown.py", line 6, in <module>
class Wait:
File "./countdown.py", line 18, in Wait
self.z()
NameError: name 'self' is not defined
私はこのクラス内の別のメソッドからcountdown
呼び出すことができますどのように?
オブジェクトの作成直後に 'self.z()'を起動したいですか? – castis
'self.z()'はクラスのインスタンスメソッド内からのみ動作します。あなたは何を達成したいですか? –
これは本当にクラスである必要がありますか? 「カウントダウン」をスタンドアロン機能として持つのはどうですか? – Kevin