私はちょうどプログラミングを始めました。私はコーディングの最初の試みにPythonを使用することに決めました。クラスとオブジェクトで練習しています。 私が尋ねようとしている質問が以前に尋ねられたのであれば謝りますが、私はどこでも答えを見つけることができないと思われます。ユーザー入力からクラスオブジェクトとその属性にアクセスするにはどうすればよいですか?
私はクラスを含むファイルを持っています。同じディレクトリに保存された別のファイルでは、
#class file
#class prodotti refers to "register" with products in stock and their prices
class Prodotti(): #class Prodotti() contains products from register and their relative specs
def __init__(self, nome="", #name of product
prezzo=0, #product price
quantità=0,): #stock quantity of product
self.nome=nome
self.prezzo=prezzo
self.quantità=quantità
def newproduct(self): #method appends new product and its specs to the end of this file
name=input("Inserire nuovo prodotto: ")
f=open("cassa3.py", "a")
f.write(name + "=Prodotti(nome='" + name + "', ")
price=input("Inserire prezzo prodotto: ")
f.write("prezzo=" + price + ", quantità=0)\n")
f.close()
def tellprice(self): #method should return price of object
inp=input("Di quale prodotto vuoi conoscere il prezzo? ") #asks user which product they want to know the price of
if inp=Prodotti():
print(inp.prezzo)
#class objects
#user can insert new products that are saved below
tortino=Prodotti(nome="Tortino al cioccolato", prezzo=3.4, quantità=0)
muffincioccolato =Prodotti(nome="Muffin al cioccolato", prezzo=1.8, quantità=0)
cupcake=Prodotti(nome='cupcake', prezzo=2, quantità=0)
、私はメインプログラムがあります:私は書かれている完全なコード以下は、私が欲しいもの、上記のコードから教えているよう
from cassa3 import Prodotti #file cassa3.py in same directory as this file
if __name__=="__main__":
P=Prodotti()
P.tellprice()
をメソッドtellprice()は、その製品の価格を知りたい製品をユーザーに尋ねることです。 しかし、ユーザー入力をクラスオブジェクトに対応させる方法がわからないので、その属性にアクセスできます。 誰かがそれをどうやってできるのか説明できますか?
ありがとうございます。
私が辞書を使いたくない理由は、さらにアクセスしたい複数のパラメータ(価格だけでなく数量など)があるからです。したがって、私はそれをすべてカバーするために複数の辞書を作成する必要があります。私が知りたいのは、ユーザーの入力を使ってクラスの新しいオブジェクトを作成する方法があれば、私はあなたの提案ではできないか、少なくとも私が見ることはできないことです:))。 – Leena
@Leenaいいえ、複数の辞書は必要ありません。詳しく見て、 'Product'クラスがすべての情報を格納していることを確認してください。 'tell_price'が' self.products [name] .price'を返すのと同じように、 'tell_quantity'メソッドは' self.products [name] .quantity'を返すことができます。あなたの質問は、ユーザーの入力に基づいてオブジェクトを作成することではなく、情報を取得することでした。 – DeepSpace
ユーザー入力から新しいクラスオブジェクトを作成する方法はありますか?だから私はそれをどうやってやるの?編集:オリジナルの質問ではなく、私は単にあなたがそれを行う方法を疑問に思っています。私のコードの残りの部分があなたの提案に合わないからです:) – Leena