객체 지향 프로그래밍 언어로서 파이썬은 객체에 중점을 둡니다. 클래스는 객체가 생성되는 청사진입니다. 파이썬의 각 클래스는 속성으로서의 함수를 포함하여 많은 속성을 가질 수 있습니다.
클래스 속성 액세스
클래스의 속성을 확인하고 이러한 속성을 조작하기 위해 아래와 같이 Python 내장 메서드를 많이 사용합니다.
-
getattr() − 클래스의 속성에 액세스하는 데 사용되는 파이썬 메서드입니다.
-
hasattr() − 클래스에서 속성의 존재를 확인하는 데 사용되는 파이썬 메서드.
-
setattr() − 클래스에서 추가 속성을 설정하는 데 사용되는 파이썬 메서드입니다.
아래 프로그램은 위의 메소드를 사용하여 파이썬에서 클래스 속성에 액세스하는 방법을 보여줍니다.
예시
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1')
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Telangana True 39 True
클래스의 메소드 접근
클래스의 메서드에 액세스하려면 클래스를 개체로 인스턴스화해야 합니다. 그러면 아래 프로그램과 같이 클래스의 인스턴스 메서드로 메서드에 액세스할 수 있습니다. 여기에서 self 매개변수를 통해 인스턴스 메소드는 동일한 객체의 속성 및 기타 메소드에 액세스할 수 있습니다.
예시
class StateInfo: StateName='Telangana' population='3.5 crore' def func1(self): print("Hello from my function") print getattr(StateInfo,'StateName') # returns true if object has attribute print hasattr(StateInfo,'population') setattr(StateInfo,'ForestCover',39) print getattr(StateInfo,'ForestCover') print hasattr(StateInfo,'func1') obj = StateInfo() obj.func1()
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Telangana True 39 True Hello from my function
다른 클래스에서 한 클래스의 메소드에 액세스
다른 클래스에서 한 클래스의 메서드에 액세스하려면 호출된 클래스의 인스턴스를 호출하는 클래스에 전달해야 합니다. 아래 예는 수행 방법을 보여줍니다.
예시
class ClassOne: def m_class1(self): print "Method in class 1" # Definign the calling Class class ClassTwo(object): def __init__(self, c1): self.c1 = c1 # The calling method def m_class2(self): Object_inst = self.c1() Object_inst.m_class1() # Passing classone object as an argument to classTwo obj = ClassTwo(ClassOne) obj.m_class2()에 classone 객체를 인수로 전달
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
Method in class 1