当前位置: 首页 > news >正文

非营利组织网站建设会计分录蜘蛛网站长工作职责

非营利组织网站建设会计分录,蜘蛛网站长工作职责,给装修公司做网站,vs2010 网站开发6. 元类 Python 中一切皆对象#xff0c;对象是由类实例化产生的。那么类应该也有个类去产生它#xff0c;利用 type() 函数我们可以去查看#xff1a; class A:pass a1 A() print(type(a1)) print(type(A))class __main__.A class type由上可知#xf…6. 元类 Python 中一切皆对象对象是由类实例化产生的。那么类应该也有个类去产生它利用 type() 函数我们可以去查看 class A:pass a1 A() print(type(a1)) print(type(A))class __main__.A class type由上可知a1 是类 A 的对象而 A 是 type 类产生的对象。 当我们使用 class 关键字的时候Python 解释器在加载 class 关键字的时候会自动创建一个对象但是这个对象非类实例产生的对象。 6.1 什么是元类 元类是类的类也就是类的模板。用于控制创建类正如类是创建对象的模板一样。 在 Python 中type 是一个内建的元类它可以用来控制生成类。Python 中任何由 class 关键字定义的类都 type 类实例化的对象。 6.2 定义类的两种方法 使用 class 关键字定义 class Foo:pass使用 type() 函数定义 type() 函数有三个参数第一个为类名str 格式第二个为继承的父类tuple第三个为属性dict。 x 2 def __init__(self, name, age):self.name nameself.age agedef test(self):print(Hello %s % self.name)Bar type(Bar, (object,), {x: 1, __init__: __init__, test: test, test1: test1}) # 类属性、函数属性 print(Bar) print(Bar.__dict__)b1 Bar(rose, 18) b1.test()class __main__.Bar {x: 1, __init__: function __init__ at 0x00000000055A6048, test: function test at 0x00000000055A60D0, test1: function test1 at 0x0000000005596BF8, __module__: __main__, __dict__: attribute __dict__ of Bar objects, __weakref__: attribute __weakref__ of Bar objects, __doc__: None} Hello rose6.3 __init__ 与 __new__ 构造方法包括创建对象和初始化对象分为两步执行先执行 __new__再执行 __init__。 __new__在创建对象之前调用它的任务是创建对象并返回该实例因此它必须要有返回值是一个静态方法。__init__在创建对象完成后被调用其功能是设置对象属性的一些属性值。 也就是 __new__创建的对象传给 __init__ 作为第一个参数即 self。 class Foo:def __init__(self):print(__init__方法)print(self)def __new__(cls*args, **kwargs):print(__new__方法)print(cls, args, kwargs)ret object.__new__(cls*args, **kwargs) # 创建实例对象print(ret)return ret f1 Foo()__new__方法 class __main__.Foo () {} # Foo 类本身 __main__.Foo object at 0x00000000055AFF28 # 类的实例对象 __init__方法 __main__.Foo object at 0x00000000055AFF28总结 __new__ 至少要有一个参数 cls代表要实例化的类由解释器自动提供。必须要有返回值可以返回父类出来的实例或直接 object 出来的实例。__init__ 的第一个参数 self 就是 __new__ 的返回值。 6.4 自定义元类 如果一个类没有指定元类那么它的元类就是 type也可以自己自定义一个元类。 class MyType(type):def __init__(self, a, b, c): # selfBar aBar b() 父类 c属性字典print(self) print(元类 init 执行~)def __call__(self, *args, **kwargs):print(call 方法执行~)obj object.__new__(self) # Bar 产生实例对象即 b1print(obj)self.__init__(obj, *args, **kwargs) # Bar.__init__(b1, name)return objclass Bar(metaclassMyType): # Bar MyType(Bar, (object,), {}) 触发 MyType 的 __init__() def __init__(self, name): # selff1self.name nameb1 Bar(rose) # Bar 也是对象对象加括号触发 __call__() print(b1.__dict__)class __main__.Bar 元类 init 执行~ call 方法执行~ __main__.Bar object at 0x00000000055D3F28 {name: rose}加载完程序后首先执行 metaclassMyType它相当于 Bar MyType(Bar, (object,), {})它会执行 MyType 的 __init__ 执行。 再接着执行 b1Bar(rose) 因为 Bar 也是对象对象加括号就会触发 __call__() 方法再由 __new__() 方法产生实例对象最后返回。 总结 元类是类的模板其功能是产生类对象那么就可以模拟通过 __new__() 产生一个类的对象并返回。一切皆对象那么类也是个对象它是由 type 产生。
http://www.tj-hxxt.cn/news/143872.html

相关文章:

  • 网站建设的提升容县网站建设
  • 定州住房和城乡建设局网站wordpress id清0
  • 上海正规建设网站私人订制广州设计网站培训学校
  • 上海集团网站建设公司好电子商务网站建设规划书范文
  • 2016用什么网站程序做流量合肥网站建设维护
  • 联通 网站备案佛山企业网站设计
  • 网站建设佰首选金手指十三哈尔滨模板建站哪个品牌好
  • 忻州建设网站的公司wordpress mohtml
  • 北京朝阳区天气预报免费seo优化
  • python 做下载网站一个人免费播放视频在线观看
  • 如何建三网合一网站自己可以进行网站建设吗
  • 最好的网站建设免费的青岛seo推广专员
  • 学校网站开发必要性与意义网络营销方法和手段
  • 厦门哪家网站建设最好汽配网站建设成本
  • 山西做网站推广网站建设使用的基本技术
  • 品牌网站建设哪里有松江品划网络做网站
  • 手机管理网站模板下载注册公司2个人可以吗
  • 在线动画手机网站模板下载网站关键词seo优化公司
  • 网站建设 论坛阿里云建设个人网站
  • 休闲度假村网站建设方案产品网站系统
  • 智能建站和成品网站的区别做网站是干嘛
  • 什么网站可以做软件做网站大概多少钱
  • 建个人网站赚钱吗东莞塘厦网站制作
  • 深圳市制作网站wordpress固定连接无法显示
  • 济南网站建设vashinewordpress开启ftp
  • 无锡网站制作哪家公司好专业有哪些
  • 如何在国外网站开发新客人网站开发之美 pdf
  • 蜘蛛爬网站网络项目网
  • 网站的类型大全百度上面做企业网站怎么做
  • 网站建设项目延期验收申请报告如何注册公司并获得营业执照