Python의 getattr() 함수 이해 및 활용
getattr() 함수는 처음에는 혼란스러워 보일 수 있지만 동적으로 런타임에 이름이 알려지지 않은 객체의 속성에 액세스합니다. 이 기사에서는 getattr()의 복잡성을 살펴보고 실제 적용 사례를 보여줍니다.
getattr() 사용 시기
여러 속성을 가진 객체가 있는 시나리오를 상상해 보세요. , 그러나 필요한 속성의 이름은 변수에 저장됩니다. object.attribute_name과 같은 기존 코드를 작성하는 대신 getattr()을 활용하여 속성 값을 동적으로 얻을 수 있습니다.
attr_name = 'gender' gender = getattr(person, attr_name)
실제 데모
다음 예를 고려하세요. :
class Person: name = 'Victor' def say(self, what): print(self.name, what) # Obtain the 'name' attribute print(getattr(Person, 'name')) # Output: Victor # Access the 'say' method person = Person() getattr(person, 'say')('Hello') # Output: Victor Hello
오류 처리 및 기본값
getattr()은 속성이 존재하지 않으면 AttributeError를 발생시킵니다. 그러나 이를 적절하게 처리하기 위해 기본값을 세 번째 인수로 제공할 수 있습니다.
age = getattr(person, 'age', 0) # Output: 0
getattr()로 속성 반복
getattr()을 다음과 결합하여 dir()을 사용하면 모든 속성 이름을 반복하고 동적으로 해당 이름을 얻을 수 있습니다. 값:
for attr_name in dir(1000): attr_value = getattr(1000, attr_name) print(attr_name, attr_value)
고급 사용 사례
getattr()는 동적으로 메소드 호출과 같은 고급 작업에 활용할 수 있습니다. 예를 들어, 'test'로 시작하는 모든 메소드를 호출하려면:
for attr_name in dir(obj): if attr_name.startswith('test'): getattr(obj, attr_name)()
결론
getattr()은 객체 속성에 대한 동적 액세스를 제공하는 다목적 함수입니다. 이름이 알려지지 않은 경우에도 마찬가지입니다. 이는 속성에 대한 액세스, 조작 및 반복을 위한 강력한 메커니즘을 제공하여 Python 프로그래밍의 유연성과 제어를 향상시킵니다.
위 내용은 Python의 `getattr()` 함수가 어떻게 객체 속성에 동적으로 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!