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

建设一个视频网站首页济南做网站优化公司

建设一个视频网站首页,济南做网站优化公司,wordpress留言页面模版,长沙网络推广软件前言 本文主要介绍了关于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.sadfv.cn/news/367347/

相关文章:

  • 网站从哪里找的html网站开发工具
  • 济南设计网站公司营销网站建设
  • 网站建设用什么教材有没有做盗版电影网站犯罪的
  • 星座 网站 建设海西高端网站建设公司
  • 设计导航精选最好的设计网站大全网页设计案例大全
  • 企业网站开发综合实训产品做网站如何谁来维护价格
  • 35互联网站建设怎么样wordpress图像验证码
  • 网站二次开发wordpress theme
  • 团购做的好的网站有哪些昆明网站seo服务
  • 深圳做营销网站公司哪家好广告设计软件免费下载
  • 个人网站建设研究意义潍坊做网站教程
  • 中英企业网站管理系统企业备案网站名称怎么填
  • 免费建站系统安康网站建设
  • 济南做网站知识响应式网站在线
  • 网站整体配色方案信息网站模板
  • phpwind网站wordpress 图片站
  • 做网站电脑配置要求个高吗jquery前端框架教程
  • 濮阳市网站怎么做宣传济南学习网站制作
  • 营销网站制作教程wordpress grace
  • 网站开发实训安排茂名专业做网站
  • 编辑网站绑定网站数据库连接不上的常见问题
  • 郑州 网站制作智慧园区官网设计
  • 做外贸网站挣钱吗点击精灵seo
  • 凡科网做的网站企业网站报价方案模板下载
  • 张家口市住房和城乡建设局网站北京市建筑设计研究院有限公司
  • 昆明建网站公司南通市交通建设处网站
  • 做淘宝客网站备案要怎么写微商营销宝最新版
  • 怎么做推广赚钱南阳优化网站排名
  • 自建站有哪些站点免费追剧
  • 石家庄做网站的公司哪个好企业网站制作深圳