Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのクラス変数または静的変数?


クラス内でメソッドの外部で変数を宣言すると、pythonではクラスまたは静的変数として呼び出されます。クラスまたは静的変数はクラスを介して参照できますが、インスタンスを介して直接参照することはできません。

クラス変数または静的変数は、同じ名前の他のメンバー変数とはまったく異なり、競合しません。以下は、クラスまたは静的変数の使用法を示すプログラムです-

class Fruits(object):
count = 0
def __init__(self, name, count):
self.name = name
self.count = count
Fruits.count = Fruits.count + count

def main():
apples = Fruits("apples", 3);
pears = Fruits("pears", 4);
print (apples.count)
print (pears.count)
print (Fruits.count)
print (apples.__class__.count) # This is Fruit.count
print (type(pears).count) # So is this

if __name__ == '__main__':
main()

結果

3
4
7
7
7

クラスレベルで定義された変数の使用法を示す別の例-

class example:
staticVariable = 9 # Access through class

print (example.staticVariable) # Gives 9

#Access through an instance
instance = example()
print(instance.staticVariable) #Again gives 9

#Change within an instance
instance.staticVariable = 12
print(instance.staticVariable) # Gives 12
print(example.staticVariable) #Gives 9

出力

9
9
12
9

  1. Pythonでの継承

    この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen

  2. Pythonでクラス変数を定義する正しい方法は何ですか?

    クラス変数は、__init__methodの外部で宣言される変数です。これらは静的要素です。つまり、クラスインスタンスではなく、クラスに属します。これらのクラス変数は、そのクラスのすべてのインスタンスで共有されます。クラス変数のサンプルコード 例 class MyClass:   __item1 = 123   __item2 = "abc"   def __init__(self):     #pass or something else コードを増やすと、より明確に理解できるようになります- class MyClass