Python 반사 사용법 실례 분석
프로그램 개발을 하는 과정에서 우리는 자주 이러한 수요를 만날 수 있다. 실행 대상 중의 어떤 방법이 필요하거나 호출 대상 중의 어떤 변수가 필요하다. 그러나 여러 가지 이유로 우리는 이 방법이나 변수가 존재하는지 확정할 수 없다. 이것은 우리가 특수한 방법이나 메커니즘으로 이 미지의 방법이나 변수를 방문하고 조작해야 하는 것이다. 이 메커니즘을 반사라고 부른다.다음 기록에서 반사하는 몇 가지 중요한 방법:
hasattr
대상에 이 방법이나 변수가 있는지 아닌지를 판단하다
class Person(object):
def __init__(self,name):
self.name = name
def talk(self):
print("%s "%self.name)
p = Person("laowang")
print(hasattr(p,"talk")) # True。 talk
print(hasattr(p,"name")) # True。 name
print(hasattr(p,"abc")) # False。 abc
getattr
대상의 방법이나 변수의 메모리 주소를 가져오는 방법
class Person(object):
def __init__(self,name):
self.name = name
def talk(self):
print("%s "%self.name)
p = Person("laowang")
n = getattr(p,"name") # name
print(n) # :laowang
f = getattr(p,"talk") # talk
f() # talk
우리는 getattr에 세 개의 매개 변수가 있다는 것을 발견했다. 그러면 세 번째 매개 변수는 무엇에 쓰입니까?
s = getattr(p,"abc","not find")
print(s) # :not find。 abc p , , , not find
setattr
객체에 변수 또는 메서드 추가
def abc(self):
print("%s "%self.name)
class Person(object):
def __init__(self,name):
self.name = name
p = Person("laowang")
setattr(p,"talk",abc) # abc p , talk
p.talk(p) # talk , ,
setattr(p,"age",30) # age, 30
print(p.age) # :30
delattr
객체에서 변수를 삭제합니다.참고: 삭제 방법에는 사용할 수 없습니다.
class Person(object):
def __init__(self,name):
self.name = name
def talk(self):
print("%s "%self.name)
p = Person("laowang")
delattr(p,"name") # name
print(p.name) #
파이썬 관련 내용에 관심이 있는 더 많은 독자들은 본 사이트의 주제를 보실 수 있습니다.,,,,,,,,,,,,
본고에서 서술한 것이 여러분의 파이톤 프로그램 설계에 도움이 되었으면 합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.