class Character:
    def __init__(self, name,):
        self.name = name

    def help (self):
        print (menu.keys())

    def name(self):
        print ("Hast du schon vergessen ? ")

c = Character
c.name = input("Wie heißt du denn ? ")
print ("Help, wenn du Hilfe brauchst")
menu ={"help":Character.help,
       "name":Character.name}

#This function allows you call up the main menu at any point in the game.  
while True :
  line = input(">")
  args = line.split()
  if len(args) < 4:
    Befehl_vorhanden = False
    for c in menu.keys():
      if args[0] == c[:len(args[0])]:
        menu[c](c)
        Befehl_vorhanden = True
        break
    if not Befehl_vorhanden:
      print ("ich verstehe dich nicht.")

अन्य स्टैक ओवरफ़्लो उपयोगकर्ताओं की सहायता के लिए धन्यवाद, मैं अपना कोड चलाने में सक्षम था। मैंने अपने खेल के लिए एक मेनू बनाया है जिसे किसी भी समय कॉल किया जा सकता है। हालांकि, यह मुझे कोई टेक्स्ट प्रिंट करने की अनुमति नहीं देगा। अगर मैं उदाहरण के लिए "नाम" इनपुट करता हूं, तो यह मुझे देता है।

लेखन त्रुटि: 'str' वस्तु प्रतिदेय नहीं है

मैंने इसे अपने मेनू के बिना मूल कार्य के रूप में उपयोग करने का भी प्रयास किया है। हालांकि, मुझे यह कोड काम करने के लिए प्रतीत नहीं होता है।

किसी भी सुझाव के लिए बहुत आभार होगा।

अग्रिम में धन्यवाद,

क्रिस

0
Poetry Lion 19 नवम्बर 2019, 18:44

1 उत्तर

सबसे बढ़िया उत्तर

आपकी पंक्ति:

c.name = input("Wie heißt du denn ? ")

एक स्ट्रिंग के लिए Character.name विधि निर्दिष्ट करता है, इसलिए आपको 'str' ऑब्जेक्ट मिलता है जो लाइन पर कॉल करने योग्य नहीं है menu[c](c) क्योंकि menu[c] Character.name है।

अपडेट करें:

यह कार्यक्रम उस कार्यक्रम के करीब हो सकता है जिसे आप ढूंढ रहे हैं:

class Character:
    def __init__(self, name):
        self.namen = name

    def help (self):
        print (menu.keys())

    def name(self):
        print ("Hast du schon vergessen ? ", self.namen)

c = Character(input("Wie heißt du denn ? "))
print ("Help, wenn du Hilfe brauchst")
menu ={"help":c.help,
       "name":c.name}

#This function allows you call up the main menu at any point in the game.  
while True :
  line = input(">")
  args = line.split()
  if len(args) < 4:
    if args[0] in menu:
        k = args[0]
        menu[k]()
    else:
      print ("ich verstehe dich nicht.")

ध्यान दें कि मैंने __init__() को प्रदर्शन में कैसे बदला: self.namen = name क्योंकि आपका संस्करण भी def name(self): की घोषणा को अधिलेखित कर देता है।

2
quamrana 19 नवम्बर 2019, 19:13