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

龙岗 网站建设深圳信科山西网络营销

龙岗 网站建设深圳信科,山西网络营销,企业互联网推广,网络营销经典案例前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容#xff0c;下面话不多说了#xff0c;来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法#xff0c;比如我们定义一个名为A的类 class A(): bar my lover…前言 本文主要介绍了关于Python实例化class的执行顺序的相关内容下面话不多说了来一起看看详细的介绍吧 Python里对类的实例化时有怎样的顺序 一般来说一个类里面有类变量和方法比如我们定义一个名为A的类 class A(): bar my lover love me def __init__(self, name): print(A的class ,self.__class__, name) 我们在这个类里面定义了一个类变量bar和一个构造方法__init__那么我们实例化A()时都发生了什么呢看官不要急听我慢慢道来... 首先,python 调用内置的type类没有听错就是我们平时用来测引用类型的那个type然后type调用内置的元类mateClassmateClass再调用__new__方法将类实例化此时完成了第一步 然后这个实例将会初始化自己的类变量就是把自己从头到尾扫视一遍 之后进入构造方法并初始化自己的实例变量。 注意python中类变量和实例变量是不一样的 类变量不用实例化也可以访问。 实例变量是动态创建的。必须实例化之后才可以访问因为之前是不存在的。 比如下面这个例子不实例化访问类变量 class A(): a 2 print(A.a) 输出 2 说了这么多上代码。看看类继承时怎么运行的 class A(): def __init__(self, name): print(A的class ,self.__class__, name) class B(A): def __init__(self, name): self._name name A.__init__(self, name) print(B的class, self.__class__, name) print(this is B class) class C(B): def __init__(self, name): B.__init__(self, name) print(C的class) if __name__ __main__: c C(lee) 输出如下 this is B class A class lee B class lee C class 来现身说法解释一波 首先对class C()进行实例化从头到尾扫一遍然后进入C()的构造遇到了父类C()的构造方法B.__init__ 。 进入class B()从头到尾扫一遍执行了print(this is B class)语句然后进入B()的构造遇到了父类B()的构造方法A.__init__。 进入class A()从头到尾扫一遍然后进入A()的构造方法A.__init__。然后A.__init__执行完毕并弹出栈class A()执行完毕并弹出栈。 回到class B()从上次未执行完的地方print(B的class, self.__class__, name)继续执行。然后B.__init__执行完毕并弹出栈class B()执行完毕并弹出栈。 回到class C()从上次未执行完的地方print(C的class)继续执行。然后C.__init__执行完毕并弹出栈class C()执行完毕并弹出栈。程序运行完毕。 由于是对class C()进行实例化上面的self都是指class C()的实例而不是class A()的或者class B()的。因此self.__class__清一色的显示而不是或 。 随便补充一下使用type关键字动态创建类的知识点敲黑板、、、我要用CET3.5的英语水平向大家翻译一部分官方文档对type的描述啦。 使用三个参数返回一个新类型对象。这实际上是类语句的动态形式。名称字符串是类名并成为__name__属性;基元元组列出基类并成为__bases__属性;并且dict字典是包含类主体定义的命名空间并被复制到标准字典以成为__dict__属性。 怎么样是不是很拗口是不是大写的懵*。so上代码以下两种写法输出一样的都是输出重写name方法 1 class X(): a 1 def __name__(self): return 重写name方法 x X() print(x.__name__(), x.a) X type(重写name方法, (object,), dict(a 1)) x X() print(X.__name__, x.a) type动态创建实例化时第一个参数就相当于重写了类的__name__方法。X类但__name__属性却不叫X呵好反人类的写法 还好我们一般不是这么变态通常我们会将这两个定义成相同的名字如下都叫X X type(X, (object,), dict(a 1)) 总结 以上就是这篇文章的全部内容了希望本文的内容对大家的学习或者工作具有一定的参考学习价值如果有疑问大家可以留言交流谢谢大家对我们的支持。 本文标题: Python中实例化class的执行顺序示例详解 本文地址: http://www.cppcns.com/jiaoben/python/241665.html
http://www.zqtcl.cn/news/493927/

相关文章:

  • php框架做网站好处网站后台模板免费下载
  • 新兴县建设局网站建筑工程网络计划技术
  • 住房和城乡建设部网站北京网站建设设计规划
  • 哪个网站做logo设计师网络营销心得体会800字
  • 广州一起做的网站动态数据库网站
  • 网站程序预装深圳市住房和建设局陈斌
  • 网站建设历程wordpress国内主题排行
  • 公司网站建设及优化计划书找能做网站的
  • 网站建设方案模板下载南宁有名的网络公司
  • 本地做织梦网站做软件怎么赚钱
  • a站全称重庆大学网络教育平台
  • 美橙做过网站案例好文案网站
  • 鞍山商城网站建设国外代理ip
  • 东莞网站设计风格wordpress不能启动怎么解决
  • 社交网站制作临海建设局网站导航
  • 合肥需要做网站的公司佛山网站制作的公司
  • 哪里有做网站平台建设网站如何盈利
  • dw网站制作素材单人做网站需要掌握哪些知识
  • 网络推广产品公司做移动网站优化首
  • 网站建设dqcx广告网络用语
  • 烟台网站建设首推企汇互联见效付款手机网站宽度自适应
  • 网站建设小程序湖南wordpress插件刷不出来
  • 中国建设银行网站首页joy荣添创意网站建设
  • 市场营销网站网站开发技术项目说明书
  • 销售网站开发的背景wordpress虚线框可序列
  • 免费响应式网站深圳关键词优化
  • 网站宣传模式做微视频的网站
  • 网站改版后的内容福建 网站建设
  • 网站的文件夹企业邮箱在哪查看
  • 开了360网站卫士ssl如何做301深圳制作网站开发费用