2017-01-05 19 views
-1

の「データベース」で特定の変数を呼び出します:はどのように定義された項目

def item1(): 
    name = "so and so" 
    weight = xy 
    color = "rainbow" 
    return name,weight,color 

私はITEM1を呼び出すと()名前の重さと色を返します。名前を呼び出すと、その名前が呼び出されます。また 私は

def item2(): 
    name = "and so" 
    weight = z 
    color = "invisible" 
    return name, weight, color 

ように私は、例のために、任意のアイテムのために「itemX()」(X状態によって彼らの完全なプロパティを呼び出すと、あることができ、他のアイテム、またはそれらの任意の数を、作る場合

しかし、同じ名前の変数がさらにあるアイテムがある場合、どのようにして特定のアイテムのプロパティを1つだけ呼び出すことができますか?例えば;必要に応じてitem2()の重みを具体的に呼び出すにはどうすればよいですか?

print(weight)は、当然、コード内の最初に定義された変数だけを与えます。したがって、指定した特定の項目のその変数をどのように指定したいのですか。何かのように:print(item2(weight))またはそのようなもの。私はこの例がうまくいかないことを知っていますが、それは何ですか?

+1

をフィールドにアクセスできるクラスまたは名前付きタプルを使用する必要があると考えています。オブジェクト指向プログラミングを見て、Pythonチュートリアルの入門を読んでください。タプルを返す関数をたくさん書くのは良いアプローチではありません。 – jonrsharpe

+0

'dict'のようなコンテナを使うか、独自の' class'を定義する必要があります。あなたはここで関数を使用していますが、そのようには機能しません。彼らはそれらのプロパティを持っていません...それらはその関数のスコープ内の*ローカル変数*です。 –

+0

ダウン投票は何ですか?コードがうまくいかなくても、うまく構築された質問です。 – Caltor

答えて

0

は、私はあなたが

class Item: 
    def __init__ (self, name, weight, color): 
     self.name = name 
     self.weight = weight 
     self.color = color 

item1 = Item ("so and so", 42, "rainbow") 

が次にあなたが.(ドット)を経由してあなたがこの多かれ少なかれ完全に間違った方法に近づいている

>>> print (item1.color) 
"rainbow" 
+0

さて、アイテム全体をどのように呼び出すのですか? これは、特定の変数が必要な場合は完全に解決しますが、今は1つのコマンドで特定の項目のすべての変数を取得できますか? 私は両方を行うことができ、必要に応じてアイテムの特定の変数を呼び出すことができるようにする必要があります。出来ますか? – Feymar

+0

例題は、手動でアイテムを作成する方法です。あなたのケースでは、これはデータベース、プレーンテキストなどであれば、データの保存方法に大きく依存します。プレーンテキストの場合は、csv、json、xml、... –

関連する問題