제 XIII, 메타 클래스 (메타 클래스)
첫째, 메타 클래스는 무엇인가
파이썬 객체의 모든, 우리는 클래스 자체가 목적은 정의하기 위해 class 키워드를 사용하여 객체의 클래스는 메타 클래스 수준의 클래스에 참조 할 수라는 메타 클래스를 생성하는 책임이있다
class Foo: # Foo=元类() pass
둘째, 왜 메타 클래스를 사용
당신은 또한 생산 공정 객체를 제어 할 수 있습니다, 생산 과정 등을 제어 할 수 : 위안 클래스는 클래스를 생성하는 책임이있다, 그래서 우리는 배우거나 사용자 정의 메타 클래스 메타 클래스의 목적을해야
에센스 :
간부 인 ()
l={} exec(''' school='oldboy' def __init__(self,name): self.name=name def score(self): print('分数是100') ''',{},l) def __init__(self,name): self.name=name Person=type('Person',(object,),{'school':'oldboy','__init__':__init__}) #class 底层就是调用type来实例化产生类(对象)
차이 보충 #exec () 평가 ()에서
f = "3+6+9+8" s = eval(f) print(s) -------------------------- 26
code = ''' def func(): print('test') return 555 func() ''' f = exec(code) print('---'*5) print(f) ------------------------------- test --------------- None