Python 반사 와 클래스 에 대한 특수 멤버 방법
반사 즉 4 개의 내장 함 수 는 getattr,hasattr,setattr,delattr 로 나 뉜 다. 구성원 가 져 오기,구성원 검사,구성원 설정,구성원 삭제
class Dog(object):
def __init__(self,name):
self.name = name
def eat(self):
print("%s is eating..."%self.name)
def run():
print("runing ....")
d = Dog("lucy")
choise=input(" :")
if hasattr(d,choise):#
func=getattr(d,choise)#
func()
else:
setattr(d,choise,run)#setattr(obj,y,fun) obj.y=fun,fun
v=getattr(d,choise)
print(v)
dir([obj]):이 방법 을 사용 하면 obj 대부분의 속성 명 을 포함 하 는 목록 을 되 돌려 줍 니 다.obj 의 기본 값 은 현재 모듈 대상 입 니 다.
hasattr(obj, attr):
이 방법 은 obj 에 attr 라 는 값 의 속성 이 있 는 지 확인 하고 불 값 을 되 돌려 줍 니 다.
getattr(obj, attr):
이 방법 을 호출 하면 obj 에서 attr 값 이라는 속성의 값 을 되 돌려 줍 니 다.예 를 들 어 attr 가'bar'라면 obj.bar 를 되 돌려 줍 니 다.
setattr(obj, attr, val):
이 방법 을 사용 하면 obj 의 attr 라 는 값 의 속성 값 을 val 로 할당 합 니 다.예 를 들 어 attr 가'bar'라면 obj.bar=val 에 해당 합 니 다.
__doc__ 뾰족 한 설명 정보 보기
__module__현재 작업 대상 이 있 는 모듈 을 표시 합 니 다.
__class__현재 작업 의 대상 이 속 한 클래스 를 표시 합 니 다.
__init__구조 방법 은 클래스 생 성 대상 을 통 해 자동 으로 실 행 됩 니 다.
__del__분석 방법,현재 대상 이 메모리 에서 방출 되 어 자동 으로 요 괴 를 베 어 실행 합 니 다.
__call__대상 뒤에 괄호 추가 실행
__dict__클래스 나 대상 의 구성원 보기
__str__클래스 에서 이 방법 을 정의 하면 이 대상 을 인쇄 할 때 이 방법의 반환 값 을 출력 합 니 다.
__getitem__클래스 에서 사전 의 속성 구성원 을 정의 하면 가 져 올 수 있 습 니 다.
__setitem__수정 클래스 의 사전 데 이 터 를 설정 합 니 다.
__delitem__클래스 의 사전 데 이 터 를 삭제 합 니 다.
__metalass__이 종 류 는 누가 예화 하여 만 들 었 는 지 나타 내 는 데 쓰 인 다.
__new__촉발init__인 스 턴 스 생 성
from lib.ss import a
# dog
class doges(object):
""" """
def __init__(self,name,food):
self.name=name
self.food=food
self.data={}#
def __call__(self, *args, **kwargs):#
print(*args)
def __str__(self):#
return self.name
def __getitem__(self):#
return self.data
def __setitem__(self, key, value):#
self.data[key]=value
def __delitem__(self, key):#
del self.data[key]
dog=doges('xxx','iii')
print(dog.__doc__)
b=a()
print(b.__module__)#
print(dog.__class__)#
dog('111')#
print(doges.__dict__)#
print(dog.__dict__)#
print(dog)# __str__
print(dog.__str__())#
dog['1']=1000# .__setitem__()
dog['2']=1000# .__setitem__()
print(dog.__getitem__())
print(dog.__delitem__('1'))#
print(dog.__getitem__())
#
def func(self):
print('hello word%s'%self.name)
print()
def __init__(self,name,age):
self.name=name
self.age=age
##type 1: 2. 3. ,
CAT=type('CAT',(object,),{'func':func,'__init__':__init__})
cat=CAT(' ',3)
cat.func()
print(cat.name,cat.age)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.