Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 속성 및 메서드 액세스


객체 지향 프로그래밍 언어로서 파이썬은 객체에 중점을 둡니다. 클래스는 객체가 생성되는 청사진입니다. 파이썬의 각 클래스는 속성으로서의 함수를 포함하여 많은 속성을 가질 수 있습니다.

클래스 속성 액세스

클래스의 속성을 확인하고 이러한 속성을 조작하기 위해 아래와 같이 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