2016-08-12 6 views
0

たとえば、3つの異なる文字列属性(bark、sleep、eat)を持つオブジェクトDogがあるとします。また、これらの変数に何度も繰り返しアクセスする関数があるとします(dog.bark、dog.bark、dog.sleep)。関数の最初(bark = dog.bark)に宣言するか、dogオブジェクトを直接使用するのが好ましいですか?Pythonでは、ローカル変数を宣言してオブジェクトからデータを抽出したり、オブジェクトを直接処理することをお勧めしますか?

例:

def print_dog_actions(dog): 
    print dog.bark 
    if dog.bark == 'loud': 
     print 'dog bark is loud! {bark}'.format(bark=dog.bark) 
    print dog.sleep 
    print dog.eat 
    print dog.sleep + dog.eat 

バーサス:

def print_dog_actions(dog): 
    bark = dog.bark 
    sleep = dog.sleep 
    eat = dog.eat 
    print sleep 
    print sleep + eat 
    print bark + eat 

は愚かな質問かもしれませんが、私は一定の基準が/規則はPythonであるかを見つけるのトラブルを抱えていますし、これは多くの質問のひとつであります私が持っています。

+0

最初に行く方法です! –

+0

これらの2つのコードは同じことをしません。 –

答えて

0

最初のものは、より頻繁に表示されるものですが、全体の目標が何であるかによって異なります。しかし、より頻繁に、あなたはこのようにしたいと思うでしょう。

変数が毛むくじゃくならば、時にはそれがあなたのために読みやすくなるかもしれない以外、それを第2の方法で行う理由は本当に考えられません。

どちらの方法も完全に有効です。最初の方法はより標準的です。

0

オブジェクトの属性(例:dog.bark)を複数回使用しない場合、読みやすさを除いて、1つのことを行うために追加の変数を宣言するポイントはありません。

この質問は、メモリ管理のトピックにつながる可能性があります。 「ヒープ」と「スタック」と、Pythonが変数を格納する方法について見てみましょう。

関連する問題