当前位置: 首页 > 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.pierceye.com/news/493927/

相关文章:

  • 阿里云esc建设网站近三天时政热点
  • 怎样做公司网站介绍仿站网站源码下载
  • 电子商务网站规划与建设摘要软件app定制开发
  • 天水做网站的公司kj6699的seo综合查询
  • 找工程项目信息网站早那么做商城网站
  • 做网站优化销售管理系统排名
  • wordpress导入网站模板wordpress部分图片
  • 无锡做网站365caiyi秘密直播
  • 无锡企业网站制作报价公司做网站需要哪些手续
  • 最好的营销型网站保险购买平台有哪些
  • 网站建设实训的目的网站开发的框架协议
  • 本地郑州网站建设搭建一个网站
  • 如何做网站竞品分析哪个网站可以接任务做兼职
  • 佛山网站关键词网站建设需求分析文档
  • 网站收录地址旅游网站建设的相关报价
  • seo月薪seo优化方法网站快速排名推广渠道
  • 企业网站设计理念如何seo网站
  • 河南移动商城网站建设怎么创建平台卖自己的产品
  • 网上做网站钱被骗了报案有用吗文章自定义wordpress
  • 网站设置成灰色市场监督管理局是什么单位
  • 北京国贸网站建设wordpress需要付费才能看某些页面
  • 郸城网站建设wordpress教程cms
  • 做本地网站赚钱吗?php网站制作过程中遇到的问题及解决办法
  • 上海网站快速排名提升ui是网站建设吗
  • 中信建设有限责任公司洪波seo外链工具
  • 网站服务器和空间有什么区别网站制作的公司哪家效果好
  • 做网站具体收费梅州南站
  • 淘宝禁止了网站建设类wordpress极速优化
  • 山东app网站制作网站建设优化广告流量
  • 做阿里云网站浏览器编程语言