제 XIII, 메타 클래스 (메타 클래스)

제 XIII, 메타 클래스 (메타 클래스)

첫째, 메타 클래스는 무엇인가

  • 파이썬 객체의 모든, 우리는 클래스 자체가 목적은 정의하기 위해 class 키워드를 사용하여 객체의 클래스는 메타 클래스 수준의 클래스에 참조 할 수라는 메타 클래스를 생성하는 책임이있다

    class Foo:  # Foo=元类()
        pass

    114-하는 ç ±»메타 클래스를 ???? ç ±»ç ???? ????에 "º.png? X-우리 프로세스 = 스타일 / 워터 마크

둘째, 왜 메타 클래스를 사용

  • 당신은 또한 생산 공정 객체를 제어 할 수 있습니다, 생산 과정 등을 제어 할 수 : 위안 클래스는 클래스를 생성하는 책임이있다, 그래서 우리는 배우거나 사용자 정의 메타 클래스 메타 클래스의 목적을해야

  • 에센스 :

  • 간부 인 ()

    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

추천

출처www.cnblogs.com/demiao/p/11456236.html