2017-09-21 7 views
0

私はオフィスで新しいスターター用の非常に単純なテキストベースのRPGを構築しています。現在、私はユーザー入力を使用してクラスのインスタンスを作成しようとしています。自分の入力を使ってプレーヤーを定義する。Pythonクラス属性のユーザー入力を使用した名前のエラー

これは私の現在のコードです:

# DEFINE CLASSES # 
class Character: 
    def __init__(self, name, dept): 
     self.name=name 
     self.dept=dept 
class Player(Character): 
    def __init__(self, name, dept, level): 
     super().__init__(name, dept) 
     self.level = level 
class Item: 
    def __init__(self, name, position, unlocked): 
     self.name=name 
     self.position = position 
     self.unlocked = unlocked 
# USER INPUT # 
User = Player(str(input("What is your name?")),str(input("What dept do you work for?")),1) 

目標は、クラスのプレイヤーのインスタンスは、属性名とDEPTのためのユーザ入力を使用して作成されていることです。ただし、コードを実行している

は現在NameErrorを与える:名前は「(入力が何であれ)」

が定義されていない私は、Pythonに新たなんだので、私は、それは本当に基本的なものだと確信しています。どんな助けも大歓迎です!

答えて

0

と同等です:

input([prompt]) -> value

Equivalent to eval(raw_input(prompt)).

あなたはinputedテキストが評価されたくない場合は、代わりにraw_input()を使用しています。

コメントの中でこれはPython2のみに書かれていますが、エラーは使用しているPythonのバージョンを示しています。

私はあなたがあなたのファイルに次のシェバングを追加提案:#!/usr/bin/env python3

次に、あなたのプログラムは、スクリプト

の実行を許可した後また、あなたのCharacterクラスがでobjectから継承する必要があり./mypythongame.pyで始まりますsuper(Character, self).__init__()または(Python3で)呼び出し可能にする:super().__init__()

+0

質問には 'python-3.x'というタグが付いていることに注意してください。質問者が少なくとも* Python 3で書くことを意図しています* raw_input()はPython 3では無効です。 – glibdud

+0

あなたの返信ありがとう最後の文で何を意味するのか説明できますか? (私はPython 3で書いていますが、私はちょうどPython2で非常にばかげて実行していました) – Neb

+0

@NebこれはまだPython2のためだけに有効です – gogaz

0

は、私はあなたが私が3

python3 your-script.py 

のpython 2では、あなたが使用するのpythonでスクリプトを実行してくださいパイソン3でエラーなしでスクリプトを実行することができたのpython 2を使用してスクリプトを実行していると思いますraw_input()ユーザー入力を文字列として取得する組み込み関数。 raw_input()関数はユーザー入力を受け取り、文字列に変換します(hereと記載)。 Python 2ビルトインのinput()関数を呼び出すことは、関数の出力でeval()を呼び出すことと同じです。したがって、これらの2つの呼び出しが同じです:Pythonの3では

a = input("Enter a number: ") 
b = eval(raw_input("Enter a number: ") 

raw_input()組み込み関数が存在しません。ユーザー入力を取得するには、input()組み込み関数を使用できます。 python 3でinput()Python documentationからPythonでraw_input() 2.

+1

* why *の説明は役に立ちます。 – SiHa

+0

ありがとうございます。私はPython3で書いていましたが、Python2で実行していました。知ってうれしい私は怒っていないよ! – Neb

関連する問題