파이썬 모르는 것 정리.

2023. 5. 21. 23:58카테고리 없음

반응형

 

 

필드와 속성의 차이.

 

종종 혼용해서 쓴다는데 다르긴 하다.

 

필드 : 객체에 속하는 변수를 사용해 데이터를 저장한다.

속성 : 필드와 메소드를 통틀어 이용하는 말.

 

class Car:
    # 필드(클래스 속성) 정의
    manufacturer = "BMW"

    def __init__(self, model):
        # 속성(인스턴스 변수) 정의
        self.model = model

    def get_manufacturer(self):
        # 메서드에서 필드(클래스 속성) 참조
        return self.manufacturer

    def get_model(self):
        # 메서드에서 속성(인스턴스 변수) 참조
        return self.model


# Car 클래스의 인스턴스 생성
my_car = Car("X5")

# 필드에 접근하여 값을 출력
print(my_car.manufacturer)  # 출력: BMW

# 속성에 접근하여 값을 출력
print(my_car.model)  # 출력: X5

# 메서드 호출하여 필드와 속성 사용
print(my_car.get_manufacturer())  # 출력: BMW
print(my_car.get_model())  # 출력: X5

 챗 GPT 예시이다. 변수명을 직접적으로 클래스 단에서 선언한 것이 필드이다. 속성은 인스턴스 단에서 정의가 된다. 이렇게 세팅을 하게 되면 필드는 클래스 내의 모든 인스턴스가 공통의 값을 나타낸다는 것이고 속성은 각 인스턴스마다 다른 값을 적용할 수 있다.

class HyundaeCar:

    car_name='Hyundae'

    def drive(self):
        print('drive')

    def brake(self):
        print('brake')


car1 = HyundaeCar()

# car1.name = car1.car_name
#
# print(car1.name)


print(HyundaeCar.car_name)

 

 

내가 짠 예제코드. 클래스이름.필드명 하면 프린트 출력된 것이 확인된다.

728x90