zoukankan      html  css  js  c++  java
  • python类的工作机制_元类?

    转自https://www.liaoxuefeng.com/wiki/1016959663602400/1017592449371072

    python作为一种解释型动态语言,对象的调用是动态的,而不是经过一次就编译完成的。对class来讲,通过type()函数创建的类和直接写class是完全一样的,因为Python解释器遇到class定义时,仅仅是扫描一下class定义的语法,然后调用type()函数创建

    >>> from hello import Hello
    >>> h = Hello()
    >>> h.hello()
    Hello, world.
    >>> print(type(Hello))
    <class 'type'>
    >>> print(type(h))
    <class 'hello.Hello'>
    

    等价于下面方式的定义方式:

    def fn(self, name='world'): # 先定义函数
    ...     print('Hello, %s.' % name)
    Hello = type('Hello', (object,), dict(hello=fn)) # 创建Hello class
    

    要创建一个class对象,type()函数依次传入3个参数:
    class的名称;
    继承的父类集合,注意Python支持多重继承,如果只有一个父类,别忘了tuple的单元素写法;
    class的方法名称与函数绑定,这里我们把函数fn绑定到方法名hello上。

  • 相关阅读:
    JSP第三章
    JSP第二章
    JSP第一章
    异常
    七种设计原则
    非泛型集合
    .NET第一章
    航班预定系统
    JSP数据交互(二)
    JSP数据交互(一)
  • 原文地址:https://www.cnblogs.com/lyzz1314/p/12745861.html
Copyright © 2011-2022 走看看