深圳网站设计网站制作网站运营论文

张小明 2026/1/12 18:26:33
深圳网站设计网站制作,网站运营论文,瑞诺国际做外贸网站好吗,新安人才网在Python中,对象(实例)对类属性赋值的行为需要结合Python的属性查找机制和命名空间规则来理解。类属性属于类本身(所有实例共享),而实例属性属于单个实例。通过实例对类属性赋值时,不会直接修改类属性本身,而是会在实例的命名空间中创建一个同名的实例属性(覆盖类属性的访问)。…在Python中,对象(实例)对类属性赋值的行为需要结合Python的属性查找机制和命名空间规则来理解。类属性属于类本身(所有实例共享),而实例属性属于单个实例。通过实例对类属性赋值时,不会直接修改类属性本身,而是会在实例的命名空间中创建一个同名的实例属性(覆盖类属性的访问)。但如果类属性是可变对象(如列表、字典),通过实例修改其内容会影响所有实例(因为共享同一引用)。1、底层机制:属性查找与命名空间Python的属性查找遵循以下顺序(简单情况下)实例命名空间(obj.__dict__)→ 类命名空间(cls.__dict__)→ 父类命名空间 → ...未找到则抛异常。当通过实例访问属性时,优先在实例的 __dict__中查找,若未找到,则到类的 __dict__中查找(类属性)。若通过实例赋值(如obj.attr value),会直接在实例的 __dict__中创建或修改属性,不会影响类属性(除非显式操作类的 __dict__)。2、代码解释先看下面这段简单的代码输出是多少?#!/usr/bin/python3 class A(object): x 1 class B(A): pass class C(A): pass print(A.x,B.x,C.x) B.x 2 print(A.x,B.x,C.x) A.x 3 print(A.x,B.x,C.x)输出结果如下:1 1 11 2 13 2 3Q:为什么改变了A.x的值还会改变C.x的值,但是同时B.x值却没有改变A:这个答案的关键是,在Python中,类变量在内部是作为字典处理的。如果一个变量的名字没有在当前类的字典中发现,将搜索祖先类(比如父类)直到被引用的变量名被找到(如果这个被引用的变量名既没有在自己所在的类又没有在祖先类中找到,会引发一个AttributeError异常)。因此,在父类中设置x 1会使得类变量x在引用该类和其任何子类中的值为1,这就是因为第一个print语句的输出是 1 1 1。随后,如果任何它的子类重写了该值(例如,执行语句B.x 2),然后,该值仅仅在子类中被改变。这就是为什么第二个print语句的输出是1 2 1。最后,如果该值在父类中被改变(例如,我们执行语句A.x 3),这个改变会影响到任何未重写该值的子类当中的值(在这个示例中被影响的子类是C)。这就是为什么第三个print输出是 3 2 3 。那么下面这段代码的输出又是多少呢?#!/usr/bin/python3 class A(object): x 1 class B(A): pass class C(A): pass b B() c C() a A() print(a.x,b.x,c.x) # 1 1 1 b.x 2 print(a.x,b.x,c.x) # 1 2 1 a.x 3 print(a.x,b.x,c.x) # 3 2 1输出结果如下:1 1 11 2 13 2 1下面部分对代码添加了部分额外打印的内容以及注释#!/usr/bin/python3 class A(object): x 1 class B(A): pass class C(A): pass b B() c C() a A() print(a.__dict__,A.__dict__) #{} {__module__: __main__, x: 1, #__dict__: attribute __dict__ of A objects, #__weakref__: attribute __weakref__ of A objects, #__doc__: None} print(b.__dict__,B.__dict__) # {} {__module__: __main__, __doc__: None} print(c.__dict__,C.__dict__) # {} {__module__: __main__, __doc__: None} # 不管是在类B还是类C的类对象或者实例对象的命名空间中都没有属性x,通过python的属性查找机制,只能在父类对象A的命名空间中找到属性x的值 print(a.x,b.x,c.x) # 1 1 1 # 注意,这里是对实例命名空间进行操作,在实例对象b的命名空间中添加属性x的值 b.x 2 print(b.__dict__,B.__dict__) # {x: 2} {__module__: __main__, __doc__: None} print(a.x,b.x,c.x) # 1 2 1 # 注意,这里是对实例命名空间进行操作,在实例对象a的命名空间添加属性x值为3,不影响类命名空间中的属性x a.x 3 print(a.__dict__,A.__dict__) # {x: 3} # {__module__: __main__, x: 1, # __dict__: attribute __dict__ of A objects, # __weakref__: attribute __weakref__ of A objects, #__doc__: None} # 实例c在自身的实例和类对象命名空间中都没找到属性x,在父类对象A的类命名空间中找到属性x的值为1 print(a.x,b.x,c.x) # 3 2 1
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设技术优势济宁网站建设多少钱

💡实话实说:C有自己的项目库存,不需要找别人拿货再加价。摘要 随着信息技术的飞速发展,传统律师事务所的案件管理方式已难以满足现代化、高效化的需求。纸质档案管理效率低下、案件信息检索困难、数据安全性不足等问题日益凸显&am…

张小明 2025/12/29 13:44:16 网站建设

论坛类的网站怎么做东游科技网站建设

终极指南:快速将Vite应用接入Garfish微前端框架 【免费下载链接】garfish A powerful micro front-end framework 🚚 项目地址: https://gitcode.com/gh_mirrors/ga/garfish 在现代前端开发中,微前端架构已经成为大型应用团队协作的首…

张小明 2025/12/31 5:59:00 网站建设

上海工作网站阿里云搜索引擎网址

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个企业级注册表批量管理工具,功能包括:1. 通过CSV文件导入多台计算机信息 2. 批量执行注册表查询和修改 3. 支持远程计算机注册表操作 4. 操作日志记录…

张小明 2025/12/30 12:45:39 网站建设

建立网站有哪几种方式中小企业erp系统哪个好

在React Native中开发一个用于商城App的表单验证组件,你可以使用多种方法来实现。这里,我将介绍一种常见的方法,使用Formik库来处理表单状态和验证。Formik是一个非常流行的React库,它可以帮助你构建表单,并轻松地处理…

张小明 2025/12/30 12:51:53 网站建设

企业网站快照更新中国flash网站模板中心

量子系统中的时间相关微扰理论与状态跃迁 1. 二态系统的跃迁概率 1.1 谐波微扰下的二态系统 在谐波微扰作用于二态系统时,系统在两个状态之间以拉比频率 $\omega_R$ 振荡。利用概率守恒,可得从状态 2 到状态 1 的跃迁概率: $P_{2 \to 1} = 1 - |c_2(t)|^2 = \cos^2(\ome…

张小明 2025/12/30 23:18:28 网站建设

互联网公司网站建设ppt河北建设工程信息网首页

MPC-HC美化完全指南:如何打造个性化播放器界面 【免费下载链接】mpc-hc Media Player Classic 项目地址: https://gitcode.com/gh_mirrors/mp/mpc-hc 你是否觉得MPC-HC播放器的默认界面过于朴素?想要让这款经典播放器更符合你的审美?本…

张小明 2026/1/10 5:04:17 网站建设