class A(object):
pass a1 = A()
a2 = A() print(a1 == a2)
print(id(a1))
print(id(a2))

结果:

 False
2325723198184
2325723198464

a1与a2的内存地址不同,a1与a2是不一样的.

 class A(object):

     def __init__(self):
self.y=10
self.x=44
x=10
y=12 class B(A): x=8
y=20 b=B()
print(b.y)
print(b.x)

结果:

 10
44

程序执行过程:

  先找def的值,然后找class中其他的,找不到再去父类中去找,知道后就停止向上级查找,输出结果.

单例模式:

 class Settings(object):
_instance = None def __new__(cls, *args, *kw):
if not cls._instance:
cls._instance = super(Settings, cls).__new__(cls, *agrs, **kw)
return cls._instance s1 = Settings()
s2 = Settings() print(s1 == s2)
print(id(s1))
print(id(s2))

结果:

 True
1705906981800
1705906981800

小彩蛋:

 print(1<2==2)
print(1 < 2 and 2 == 2)

结果:

 True
True

按照该官方文档解释,

”5== len(a)== len(b)“等价于”5== len(a) and len(a)==len(b)“

以此类推,得到上述结果.

Python_面向对象_单例模式的更多相关文章

  1. Python_面向对象_类2

    类的几个装饰器方法: @classmethod (类方法):使之无法访问实例变量 class Animal(object): def __init__(self, name): self.name = ...

  2. Python_面向对象_类1

    面向对象:减少重复代码,提高效率,比函数式编程更高效 类的创建: 实例属性又称:成员变量,成员属性(或者字段) 面向对象的三大特性: 一.封装 把客观事物封装为抽象的类,并对外只暴露一个可用接口 使用 ...

  3. python_面向对象_组合

    组合: 一个类的对象是另外一个类对象的属性 # 组合 # 一个类的对象是另一个类对象的属性 # 什么时候使用组合:当两个类之间的关系是 :什么有什么的关系 : 班级有学生 学生有班级 班级有课程 图书 ...

  4. 黑马程序员_Java面向对象_内部类

    6.面向对象_内部类 1.内部类定义 内部类:将一个类定义在另一个类里面,对里面那个类就称为内部类.(内置类.嵌套类)内部类可以被私有修饰. 2.内部类访问规则 访问特点: 内部类可以直接访问外部类中 ...

  5. python_面向对象进阶(7)

    第1章 面向对象特性—继承(补充) 1.1 接口类.抽象类介绍 1.2 接口类 1.3 接口类应用过程 1.3.1 第一版:完成多种支付方式接口 1.3.2 第二版: 归一化设计,统一支付方式 1.3 ...

  6. Python_面向对象进阶

    isinstance和issubclass isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object): pass obj = Foo() isi ...

  7. 1.Python_字符串_常用办法总结

    明确:对字符串的操作方法都不会改变原来字符串的值. 1.去掉空格和特殊符号 name.strip() 去掉空格和换行符 name.strip("xx") 去掉某个字符串 name. ...

  8. 09_Java面向对象_第9天(类、封装)_讲义

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 A: 面向过程与面向对 ...

  9. C#基础_单例模式

    控制某个类型的实例数量-唯一一个 class Program { static void Main(string[] args) { test t1 = test.GetInstance(); tes ...

随机推荐

  1. 使用 dep 配置 golang 开发环境

    概要 golang 的包管理一直没有官方统一的解决方案,因此也产生了很多非官方的包管理工具. 之前我一直使用的 gb(https://getgb.io/) 能够很好的隔开各个 golang 工程,当时 ...

  2. [WeChall] Training: Encodings I (Training, Encoding)

    Training: Encodings I (Training, Encoding) We intercepted this message from one challenger to anothe ...

  3. python mysql数据库操作

    一.pymysql 模块安装(本文博客推荐:https://www.cnblogs.com/clschao/articles/10023248.html) pip3 install pymysql 二 ...

  4. Java之word导出下载

    访问我的博客 前言 最近遇到项目需求需要将数据库中的部分数据导出到 word 中,具体是在一个新闻列表中将选中的新闻导出到一个 word 中.参考了网上一些教程,实现了该功能,在此记录下来. 导出结果 ...

  5. UVA1627-Team them up!(动态规划)

    Problem UVA1627-Team them up! Total Submissions:3577  Solved:648 Time Limit: 3000 mSec Problem Descr ...

  6. CROI R1

    $CROI$ $R1$ 今天参加了一场比赛,什么比赛呢?CROI. CROI是什么呢? $Challestend$ $Rehtorbegnaro$ $OI$.总的来说就是我们机房的一些神仙出的题啦. ...

  7. ESP8266烧录配置

    装载的网页在工程目录下同个文件夹data

  8. flask-sqlalchemy 一对一,一对多,多对多操作

    先进行如下操作: from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app=Flask(__name__) db= ...

  9. MyEclipse使用总结——设置MyEclipse开发项目时使用的JDK

    安装好MyEclipse之后,在MyEclipse中开发项目时,默认使用的是MyEclipse是自带的JDK,如下图所示: 如果我们需要使用自己安装好的JDK,那么就需要在MyEclipse中重新设置 ...

  10. LCA--倍增法

    一般来求LCA有3种方法 1.倍增 2.RMQ+欧拉序 3.tarjan(离线) 本文将倍增求lca 这个算法是很常见很常见的 也是较好理解的 (我也不明白假期学长讲的时候我为什么死活都不明白 自闭q ...