2012-02-26 8 views
3

私のpythonコードには、国を表すオブジェクトをインスタンス化するクラスがあります。クラスにはコンストラクタがあります。Pythonコンストラクタをより簡潔にすることはできますか?

class Country: 
    def __init__(self, population, literacy, firms, area, populationDensity): 
     self.population = population 
     self.literacy = literacy 
     self.firms = firms 
     self.area = area 
     self.populationDensity = populationDensity 

このコードをより簡潔にする方法はありますか?ここに私が求めているものの擬似コードがあります。

class Country: 
    def __init__(self, population, literacy, firms, area, populationDensity): 
     # assign object these properties in one line 

ありがとうございます。

+3

1行の解決策では4行しか節約できませんが、おそらく理解しにくくなります。 –

+2

いくつかのアプローチでは[この質問](http://stackoverflow.com/questions/1389180/python-automatically-initialize-instance-variables)を参照してください。初期化の議論が非常に多く、簡潔ではないと思われる場合は、多すぎると思われます。 – DSM

答えて

3

これは1行で行うことができますが、コードの読み込みと読み込みが難しくなります。あなたのやり方は次のとおりです。

class Country: 
    def __init__(self, population, literacy, firms, area, populationDensity): 
     (self.population, self.literacy, self.firms, self.area, self.populationDensity) = (population, literacy, firms, area, populationDensity) 
+2

括弧を割り当ての両側に置くことができます。 –

+0

ありがとう、それは動作しますが、私はあなたが推奨したように複数の行にコードを入れていると思います。 – dangerChihuahua007

関連する問題