我正在处理初始化类的问题。下面是一个复制的例子,突出了潜在的问题(我没有设法使它小得多):

课程

我们有两个类A,B。等级制度A:第一类实例有两个属性link;name

^{cd2>的一个属性是这个类的。在

为了更快地声明B的实例,我考虑了以下几点:B(name=name)帘幕后面的B(a=A(name=name))。在

这是密码class A(object):

def __init__(self, link='', name=''):

self.name = name

self.link = link

class B(object):

def __init__(self, a=A(), value=0, link='', name=''):

# Two ways to initialize "self.a":

# 1. If "name" or "link" provided

# 2. With "a" provided

if {name, link}.difference({''}):

self.a = A(name=name, link=link)

else:

self.a = a

# Rest

self.value = value

def __str__(self):

return 'Instance:\nname:\t{}\nlink:\t{}\nvalue:\t{}'.format(self.a.name, self.a.link, self.value)

测试

这里有两个小测试:{{10>使用第一个实例来定义第二个方法将实例定义为空(B()),然后继续填充/覆盖字段。在

正如下面可以看到的,第二个选项是有问题的,因为它覆盖了类的默认值。在

^{pr2}$

我怎么能保证这个问题不会发生?我应该重写__new__方法,添加getters/setter,使用副本(copy.deepcopy)等吗?在

python类实例覆盖_避免类实例覆盖默认值相关推荐

  1. Backup--修改实例级别是否使用压缩备份的默认值

    --========================================= --修改实例级别是否使用压缩备份的默认值 USE master; GO EXEC sp_configure 'b ...

  2. java怎么调用另一个类的方法_在一个类中访问另一个类的方法

    在一个类中访问另一个类的方法 由于Java应用程序是由若干个类构成的,因此经常需要在一个类中访问另一个类中的成员和方法,请问应该如何在一个类中访问另一个类的方法?下面是由百分网小编为大家整理的在一个类 ...

  3. 80070583类不存在_原创 | 类应该是匀称和均匀的

    当我们采用面向对象的编程语言来设计类的时候,我们设计的大部分类应该是匀称并且均匀的. 类本身应该是匀称的 我们知道,类既有状态,又有行为.在多数面向对象的语言中,状态由类的字段来承载,而行为通过类的方 ...

  4. java派生类属例子_“派生”类属与“相关”类属的辨析

    在奥苏贝尔有意义学习理论中下位学习又称类属学习,是指将概括程度或包容范围较低的新概念或命题,归属于认知结构中概括程度或包容范围较高的适当观念中,从而获得新概念或新命题的意义的学习.它可分为两种形式的学 ...

  5. 5类6类7类网线对比_五类,六类,七类网线都有什么区别

    展开全部 双绞线按电气性能划分的话,通常分为:三类.636f707962616964757a686964616f31333365643662四类.五类.超五类.六类.七类双绞线等类型,原则上数字越大, ...

  6. python中怎么设置默认值_在Python中设置应该是列表的参数的默认值的最佳实践?...

    我有一个将列表作为参数的python函数.如果我将参数的默认值设置为如下空列表: def func(items=[]): print items 皮林特会告诉我"危险的默认值[]作为参数&q ...

  7. python 读取内存二叉树_二叉树类python

    python中的树数据结构 线性数据中的典型顺序表和链表已经讲完: <顺序表数据结构在python中的应用> <python实现单向链表数据结构及其基本方法> <pyth ...

  8. python中rect函数_使用类和函数的面向对象Python-rectangle

    我正在用Python创建一个程序,它将利用面向对象的编程来打印给定矩形的属性.该项目有以下限制:The purpose of this lab is to give you practice crea ...

  9. python循环结构三角形_循环结构实例(for循环三角形)

    本篇包括14章内容,系统介绍了Python语言的基础知识.内容包括Python基础语法.数据类型和类型转换.运算符.流程控制(分支结构循环结构).数据结构(列表生成式).函数的定义及使用.异常处理.迭 ...

最新文章

  1. centos6.5 php5.2,Linux中PHP安装与配置(CentOS-6.5:php-5.2.13)
  2. python语言设计简单计算器_Python 设计一个简单的计算器-Go语言中文社区
  3. 【渝粤教育】国家开放大学2018年春季 0529-22T高级英语阅读(1) 参考试题
  4. mysql结果集相减_MySQL_(Java)使用JDBC向数据库发起查询请求
  5. 剑指offer_03
  6. 投资百亿的新大学,有新进展!
  7. Linux内核驱动模块示例--Helloword及Makefile
  8. SQL SERVER 和ACCESS/excel的数据导入导出
  9. [转]介绍“Razor”— ASP.NET的一个新视图引擎
  10. [软考]项目工作说明书VS项目范围说明书
  11. 计算机网络读书笔记DAY4(3)
  12. 推销计算机英语作文,2018年12月英语四级作文范文:卖电脑
  13. 可汗学院公开课: 统计学_1 统计学基本知识、二项及泊松分布
  14. angular实现国密算法sm2、sm3和sm4的ts版,基于sm-crypto库实现,前后端实现
  15. 向前的快捷键_快速提高逼格的电脑快捷键你懂多少?
  16. linux shell 中数组的定义和for循环遍历
  17. 《Android移动应用基础教程》之Android购物商城
  18. 利用Python的folium包绘制城市道路图!专业地图!
  19. selenium点击lebel标签报错element click intercepted
  20. 数博会上,马云马化腾李彦宏都说了什么

热门文章

  1. shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构
  2. python能处理图片吗_python 能处理图像?
  3. python编程入门单例_python实现单例模式怎么写啊?
  4. MATLAB GUI的CreateFcn如何创建
  5. 设置numpy的随机种子
  6. matlab的四维图像数据可视化
  7. OpenCV学习笔记(十八):凸包,最小包围区域算子:convexHull(),minAreaRect(),minEnclosingTriangle(),minEnclosingCircle()
  8. 爬虫教程( 4 ) --- 分布式爬虫 scrapy-redis、集群
  9. c 富文本html编辑器,富文本HTML编辑器UEditor
  10. C++学习之路 | PTA乙级—— 1036 跟奥巴马一起编程 (15 分)(精简)