2017-05-06 23 views
0

なぜ私は結果を得ることができませんか(KFCはアメリカンレストランですか)?どうすれば変更できますか?要件を満たしていますか?期待結果が得られませんでした - Python

class Restaurant: 
    __name="" 
    __cuisine="" 


    def __init__(self,name,cuisine): 
     self.__name=name 
     self.__cuisine=cuisine 

    def describe_restaurant(self): 
      print(self.__name, " is a ",self.__cuisine ," restarurant.") 

    def open_restaurant(self): 
      print(self.__name ," is open.") 


def test(): 
    p=Restaurant("KFC","American") 
    print(p.describe_restaurant) 
+0

:また

p.describe_restaurant() 

、このように、実際にあなたのtestメソッドを呼び出してください:、括弧を追加することによって、それを呼び出すことを行うために、それは範囲外です。 ( 'h(p)') –

+0

@ t.m.adamが完全に返答しました。私が追加するかもしれない場合、別の応答は、一般にどのプログラミング言語でもベストプラクティスとはみなされないグローバル変数を示唆しています。さらに、コードの要件に基づいて、2つの別々の関数を持つ必要はないようです。添付文書に記載されている要件を満たすためには、「テスト」という単一の機能が適切に機能するはずです。また、describe_restaurant()に戻り値がないため、p.describe_restaurantの戻り値を出力する呼び出しは失敗します。単にp.describe_restaurant()を呼び出します。 – YashTD

+0

私は 'describe_restaurant' en' open_restaurant'でprintステートメントを使用しません。文字列を返します。 – Elmex80s

答えて

1

describe_restaurantは関数です。あなたが書くとき

print(p.describe_restaurant) 

あなたは関数の文字列表現を得ています。しかし、あなたはこの関数を呼び出して実行させ、その戻り値を出力したいと考えました。 `p`がそのようにT '`で定義されているため

test() 
+0

ありがとう、私はそれを変更しましたが、それでも動作しません。 –

+0

@TianxuZang私にとってはうまく動作し、[ideone](http://ideone.com/Rkq6Pj)でも同様です。あなたは[ideoneに投稿されたコードと同じ](http://ideone.com/Rkq6Pj)が正確にあることを確認できますか? – phihag

+0

ありがとう、それは動作します! –

関連する問題