を指示されていないとき、Pythonは定義を実行するには、私のコードです:ここ
from __future__ import print_function
import random
from random import shuffle
from random import randint
class ship:
def __init__(self):
self.database_scientific = 100
self.database_cultural = 100
def move_on(self):
def _do_damage(self):
self = self - randint(5,30)
print(module)
system_list = [
'scientific database',
'cultural database'
]
system_list_damaged = {
'scientific database': _do_damage(self.database_scientific),
'cultural database': _do_damage(self.database_cultural)
}
if randint(0,10) >= 1:
encounter_type = randint(1,4)
vulnerable_system = system_list[0]
vulnerable_system_number_two = system_list[1]
if encounter_type == 1:
print("\n[1] Allow it to hit %s. \n[2] Rotate so it hits another part of the ship." % vulnerable_system)
choice = raw_input("\n> ")
if choice == 1 and vulnerable_system == "surface probes":
print("\nThe asteroid crashes into the ship and knocks one of the surface probes loose.")
self.surface_probes = self.surface_probes - 1
elif choice == 1:
print("\nThe asteroid crashes into the %s causing irreparable damage." % vulnerable_system)
for vulnerable_system in system_list_damaged.keys():
system_list_damaged[vulnerable_system](self)
break
s = ship()
s.move_on()
私はmove_on()の定義を初期化するときに明示的に聞いていないとき、それは)(_do_damageを実行しています。誰がなぜこれが起こっているのか説明できますか?私は良い答えや解決策を見つけることができませんでした。私はもともとmove_on()の外に_do_damage()を持っていましたが、_do_damage()の定義を呼び出すことはできませんでした...
ここに2つの '_do_damage'呼び出しがあります。 'system_list_damaged'を見てください。 –
待ちます。実際に私は伝えることはできません。あなたのインデントを修正してください。 –
しかし、それらは実行されるべきではありません。これは、system_listと破損するモジュールを一致させる辞書です。 – Joshua