Python은 getattr 함수를 통해 객체의 속성 값을 가져옵니다.

1852 단어 Pythongetattr함수
영문 문서:
getattr(object, name[, default])
Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object's attributes, the result is the value of that attribute. For example, getattr(x, 'foobar') is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.
객체의 속성 값 가져오기
설명:
  1. 함수 기능은 대상object에서 이름이name인 속성을 가져오고, 등효와object를 호출합니다.name.

# Student
>>> class Student:
  def __init__(self,name):
    self.name = name

    
>>> s = Stduent('Aim')
>>> getattr(s,'name') # s.name
'Aim'
>>> s.name
'Aim'
  2. 함수 세 번째 매개 변수 default는 선택할 수 있는 매개 변수입니다. 만약object에서 name 속성을 의미한다면name 속성의 값을 되돌려줍니다.name 속성이 없으면default 값을 되돌려줍니다.default가 입력되지 않으면 오류가 발생합니다.

# Student
>>> class Student:
  def __init__(self,name):
    self.name = name

>>> getattr(s,'name') # name
'Aim'

>>> getattr(s,'age',6) # age, , 
6

>>> getattr(s,'age') # age, , 
Traceback (most recent call last):
 File "<pyshell#17>", line 1, in <module>
  getattr(s,'age')
AttributeError: 'Stduent' object has no attribute 'age'
및 __getattr__의 차이점:
__getattr__클래스의 내장 방법으로 어떤 속성을 찾지 못할 때 이 방법을 사용합니다.찾으면 호출되지 않습니다.
getattr는 클래스와 무관합니다.
하나의 예: 데이터의 에이전트 클래스로서 이런 방식으로 데이터의 속성을 사용할 수 있다.

class DataProxy(...):
  def __getattr__(self, item):
    return getattr(self.data, item)
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기