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

Pythonでクラスメンバーを変更しますか?


Pythonオブジェクト指向プログラミングでは、変数をクラスレベルまたはインスタンスレベルで使用できます。変数は、プログラムで使用している値を示す記号にすぎません。

クラスレベルでは、変数はクラス変数と呼ばれ、インスタンスレベルの変数はインスタンス変数と呼ばれます。簡単な例でクラス変数とインスタンス変数を理解しましょう-

# Class Shark
class Shark:
animal_type= 'fish' # Class Variable
def __init__(self, name, age):
self.name = name
self.age = age

# Creating objects of Shark class
obj1 = Shark("Jeeva", 54)
obj2 = Shark("Roli", 45)

print ("Printing class variable using two instances")
print ("obj1.animal_type =", obj1.animal_type)
print ("obj2.animal_type =", obj2.animal_type)

#Let's change the class variable using instance variable
obj1.animal_type = "BigFish"

print ("\nPrinting class variable after making changes to one instance")
print ("obj1.animal_type=", obj1.animal_type)
print ("obj2.animal_type =", obj2.animal_type)

上記のプログラムでは、Sharkクラスを作成し、オブジェクトを使用してクラス変数を変更しようとしています。これにより、その特定のオブジェクトの新しいインスタンス変数が作成され、この変数がクラス変数をシャドウイングします。

出力

Printing class variable using two instances
obj1.animal_type = fish
obj2.animal_type = fish

Printing class variable after making changes to one instance
obj1.animal_type= BigFish
obj2.animal_type = fish

正しい出力が得られるように、上記のプログラムを変更してみましょう-

# Class Shark
class Shark:
animal_type= 'fish' # Class Variable
def __init__(self, name, age):
self.name = name
self.age = age

# Creating objects of Shark class
obj1 = Shark("Jeeva", 54)
obj2 = Shark("Roli", 45)

print ("Printing class variable using two instances")
print ("obj1.animal_type =", obj1.animal_type)
print ("obj2.animal_type =", obj2.animal_type)

#Let's change the class variable using instance variable
#obj1.animal_type = "BigFish"

Shark.animal_type = "BigFish"
print("New class variable value is %s, changed through class itself" %(Shark.animal_type))

print ("\nPrinting class variable after making changes through instances")
print ("obj1.animal_type=", obj1.animal_type)
print ("obj2.animal_type =", obj2.animal_type)

結果

Printing class variable using two instances
obj1.animal_type = fish
obj2.animal_type = fish
New class variable value is BigFish, changed through class itself

Printing class variable after making changes through instances
obj1.animal_type= BigFish
obj2.animal_type = BigFish

  1. Pythonでttkボタンの高さを変更する

    Ttk さまざまなプロパティや機能を介して構成できるtkinterの標準ウィジェットにスタイルを追加します。 ttkの高さを変更できます グリッド(オプション)を使用してボタンを押す 方法。このメソッドには、いくつかの異なるオプションを持つさまざまな属性とプロパティが含まれています。 ttkボタンのサイズを変更する場合は、 ipadxなどの内部パディングの値を指定できます。 およびipady 。 例 例を挙げて理解しましょう #Import tkinter library from tkinter import * from tkinter import ttk #Create an i

  2. Pythonでの継承

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