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