2018-03-28 python高级编程隔空小结

No.1 包(lib)、模块(module)

1.1 在python中存在包(lib)和模块(module)两个常见概念。

:用来分门别类存放模块代码的文件夹,【一般存在一个init.py文件】
模块:编写Python代码的py文件

什么是包(lib)?
  用来包裹一个或者多个模块(py文件)的目录(文件夹)
  __init__.py 用来申明该文件夹是一个包
  __init__.py文件有个__all__属性,用来描述该包下的所有py文件
  只有被它描述的文件,才可以使用from xxx import *
什么是模块(module)?
包含大量类或者方法的py文件,模块一般是包含包下面的

模块的几种导入方式:
__init__.py文件:
__all__变量的使用:
__init__.py文件中导入其他模块文件,推荐使用

常见模块或者包的导入方式
import xxx
import xxx.xx

注意:

  • 如果是普通文件夹,该文件夹是可以充当包使用的,但是要注意导入模块的问题,导包的时候要对应的模块中;
  • 可以使用as关键字简化的包路径;
  • 注意相对导包和绝对导包的问题;
  • 如果是一个包(存在init.py),all(数组)去申明该包下的模块,导入是也需要导入到对应的模块中,但是可以使用from xxx import *;
  • 如果在init文件中使已经导入了模块(相对导包和绝对导包),此时包会自动的帮助我们导入对应模块;

No.2 is, == 的使用

注意:
小整数常量池(-5~256)和字符串常量池("abc")

a is b : 判断a和b是否指向同一块内存空间。(返回:boolean值)
a == b :判断a和b指向的空间里的内容是否一样。(返回:boolean值)

  • is 是比较两个引用是否指向了同一个对象(地址引用比较)。
  • == 是比较两个对象是否相等。(比较的数值)

No.3 深拷贝和浅拷贝

将一个变量赋值给另一个变量,这个过程叫做赋值。赋值会导致多个变量同时指向一块内存,所以此时不管是==或者is都返回True
浅拷贝

浅拷贝是对于一个对象的顶层拷贝
通俗的理解是:拷贝了引用,并没有拷贝内容


image.png

但是,当a发送变化时,b不会变化:


image.png

深拷贝

深拷贝是对于一个对象所有层次的拷贝(递归)

注意常量类型的深浅拷贝问题(如字符串、数值型、元组)


No.4 生成器

通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。

1、有规律的列表,[] ==> () 生成器
2、规律很难有一个简单表达式表示出来

斐波拉契数列(Fibonacci)
前两个数之和等于3个数

def fib(max):
  first,second,index = 1,1,0
while index < max:
    first,second = second,first+second
    print(first)
    index += 1

No.5 属性property

面试题:
1、 你对面向对象的理解
2、 面向对象的特征是什么
3、 对封装的理解?
封装,类本身就是一个封装,封装了属性和方法。方法也是封装,对一些业务逻辑的封装。私有也是封装,将一些方法和属性私有化,对外提供可访问的接口。
4、 对继承的理解
将共性的内容放在父类中,子类只需要关注自己特有的内容,共性的继承过来就行了。
这样简化开发,符合逻辑习惯,利于扩展。
5、 多态的理解
多态,一个对象在不同的情况下显示不同的形态。在python中因为是弱类型语言,对类型没有限定,所有python中不完全支持多态,但是多态的思想呢,python也是能体现的。

拓展:父类引用指向子类实例,叫做多态
面向对象三大特性:
1、封装
2、继承
1、新式类
2、经典类
3、多态
1、一个事务的多种状态
在继承的基础上,说多态
父类引用指向子类实例

class Animal:
  pass
class Cat(Animal):
  pass
a = Animal()
c = Cat()
Animal a = new Animal() 
Cat c = new Cat()
c = Cat() # 多态

弱数据类型的语言是天生支持多态

私有属性添加getter和setter方法:
使用property升级getter和setter方法:

image.png

略显粗略!!!详细了解请私信我。
qq:1335016337
邮箱:wzj1335036337@163.com

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容

  • 慢慢人生路,转眼已千年 20岁,太美好的年龄 可以为一切事情疯狂 努力 执着 不管不顾 20岁,太美好的年龄 离开...
    随遇而安的叶子阅读 386评论 0 3
  • 一周学习总结 不知不觉中,特训营已经过去了三分之一的时间!8个班64位伙伴,从天南地北每天聚集到一个微信群里学习。...
    璞玉_e048阅读 211评论 0 0
  • 近日,河南大学生闫啸天和朋友王亚军,因猎捕并售卖国家二级保护动物十五只燕隼及一只凤头鹰,被分别判处有期徒刑10年半...
    鸠啾波阅读 313评论 0 0