이전 튜토리얼에서는 python 시스템 명령에 대해 배웠습니다. 이번 튜토리얼에서는 Python getattr() 함수에 대해 설명하겠습니다.
Python getattr() 함수
Python getattr() 함수는 객체의 속성 값을 가져오는 데 사용되며 해당 객체의 속성을 찾을 수 없는 경우 기본값이 반환됩니다. 기본값을 반환하는 것이 Python getattr() 함수를 사용해야 할 주된 이유입니다. 따라서 튜토리얼을 시작하기 전에 Python의 getattr() 함수의 기본 구문을 살펴 보겠습니다.
getattr(object_name, attribute_name[, default_value])
Python getattr() 예제
이 섹션에서는 getattr()
함수를 사용하여 객체의 속성 값을 어떻게 액세스하는지 배워보겠습니다. 가정해보겠습니다. 우리가 Student
라는 클래스를 작성하고 있습니다. Student 클래스의 기본 속성은 student_id
와 student_name
입니다. 이제 Student 클래스의 객체를 생성하고 해당 속성에 액세스하겠습니다.
class Student:
student_id=""
student_name=""
# 초기 생성자를 사용하여 값 설정
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# getattr() 함수를 사용하여 속성 값 가져오기
print('\ngetattr : name of the student is =', getattr(student, "student_name"))
# 하지만 이렇게도 액세스할 수 있습니다.
print('traditional: name of the student is =', student.student_name)
Python getattr() 기본 값
이 섹션에서는 Python getattr() 기본 값 옵션을 사용할 것입니다. 객체에 속하지 않는 속성에 액세스하려면 getattr() 기본 값 옵션을 사용할 수 있습니다. 예를 들어, 학생에게 student_cgpa
속성이 없는 경우 기본 값을 표시합니다. 다음 예제에서는 기본 값의 예제를 볼 것입니다. 또한 속성이 없는 경우와 기본 값 옵션을 사용하지 않을 때의 결과를 배웁니다.
class Student:
student_id=""
student_name=""
# 초기 생성자로 값 설정
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# 기본 값 옵션 사용
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# 기본 값 사용하지 않음
try:
print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
print("Attribute is not found :(")
코드를 실행한 후 결과가 다음과 같이 표시됩니다
Using default value : Cgpa of the student is = 3.0
Attribute is not found :(
AttributeError
가 발생하는 것을 주목하세요. getattr() 함수를 호출할 때 기본 값이 제공되지 않았을 때입니다.
Python getattr() 함수 사용 이유
주요 이유는 속성 이름을 문자열로 사용하여 값을 가져올 수 있다는 것입니다. 따라서 프로그램에서 콘솔로부터 속성 이름을 수동으로 입력할 수 있습니다. 또한 속성을 찾을 수 없는 경우 일부 기본 값을 설정할 수 있으며, 이를 통해 불완전한 데이터를 완료할 수 있습니다. 또한 Student 클래스가 작업 중인 경우 getattr() 함수를 사용하여 다른 코드를 완료할 수 있습니다. 한 번 Student 클래스에 이 속성이 있으면 자동으로 가져오고 기본 값을 사용하지 않습니다. 따라서 이것이 python getattr() 함수에 대한 모든 내용입니다. 이에 대한 질문이 있으시면 아래의 댓글 상자를 사용해 주세요. 참고: 공식 문서
Source:
https://www.digitalocean.com/community/tutorials/python-getattr