一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子 class Room: def __init__(self,name,length,width,heigh): self.name = name self.length = length self.width = width self.heigh = heigh ​ @property #通过使用property…
一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() class Foo: ​ def __call__(self, *args, **kwargs): print("我执行啦") ​ f = Foo() f() #对象加括号调用执行类下的__call__方法 #输出结果 我执行啦 二.__next__和__iter__实现迭代器协议 迭…
一.继承顺序: 多继承情况下,有两种方式:深度优先和广度优先 1.py3/py2 新式类的继承:在查找属性时遵循:广度优先 继承顺序是多条分支,按照从左往右的顺序,进行一步一步查找,一个分支走完会走另一个分支(若多条分支汇总一个头,除最后一条分支能走到头,其他的都走到次之位置停止,进行下一条分支的查找),直到查找到头为止. 可以利用 类名.__mro__ 的方法查看类之间的继承关系(经典类没有这种方法) class B(object): def func(self): print('----->…
一.局部变量与全局变量 1.在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量.全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序. 全局变量没有任何缩进,在任何位置都可以调用. 子程序:如用def定义的函数. 作用域 一个标识符的可见范围,这就是标识符的作用域.一般常说的是变量的作用域 全局作用域(global):在整个程序运行环境中都可见 局部作用域:在函数.类等内部可见:局部变量使用范围不能超过其所在的局部作用域. 例子 NAME = "nicholas&qu…
Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. Me…
面向对象编程: 面向对象顾名思义,就是把组织代码的粒度从函数级别抽象到对象级别,对象是通过类来生成的,类可以想象为模板或进本框架而对象是在原有模板或框架的基础上增加详细信息的实体,类,有分类.聚类的含义,也就是说把世间万物进行区分,有相同特点的找到这些相同点构成一个模板,以备今后使用.实例化就是从类生成对象的过程. 类的三大特性: 封装.继承和多态 封装:编程的根本结果是实现了数据的组织.传递.转换与呈现,面向对象编程中,对数据的存放和传递进行了抽象,数据不再以单点存在,而是保存在对象中,传递的…
  目录: 面向过程VS面向对象 面向对象编程介绍 为什么要用面向对象进行开发 面向对象的特性:封装.继承.多态 面向过程 VS 面向对象 面向过程编程(Procedural Programming) 面向过程编程依赖一个procedure包含一组要被进行计算的步骤, 面向过程又被称为top-down languages, 就是程序从上到下一步步执行,一步步从上到下,从头到尾的解决问题 .基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个小问题或子过程,这些子过程再…
configparser模块 configparser用于处理特定格式的文件,其本质是利用open来操作文件. 文件a.txt [section1] k1 = 123 k2:v2   [section2] k1 = 234 加载文件a.txt import configparser   config = configparser.ConfigParser() config.read('a.txt',encoding='utf-8') 对文件相关操作 import configparser   c…
一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") return test1 res = test() print(res) 输出结果 test <function test1 at 0x021F5C90> 分析:这里print(res)输出的是test1函数在内存中的地址,return也是可以返回的,加上括号就可以运行函数了 例子2 name = &q…
内容概要 面向对象和面向过程 面向对象三大特征 面向对象的成员 类与类之间的关系 约束 type.issubclass.isinstance self.super.MRO 1. 面向对象和面向过程 01. 面向过程: 一切以事物的流程为核心. 核心是"过程"二字, 过程是指解决问题的步骤,即, 先先什么, 后干什么. 基于该思想编写程序就好比在编写一套流水线. 是一种机械式的编程思维 优点: 负责的问题流程化, 编写相对简单 缺点: 可扩展性差 02. 面向对象: 程序员站在上帝的角度…