随笔分类 -  Python

摘要:什么是反射?#是什么 答:用字符串数据类型的变量名来访问这个变量的值 反射的方法:getattr hasattr setattr delattr 好处:优化代码 1.getattr 用法:getattr(object, name[,default]) -> value 返回object中name字符串对应的方法和属性,不存在返回默认值default。 如果没有传default,那么找不到... 阅读全文
posted @ 2018-03-01 21:23 小学弟- 阅读(120) 评论(0) 推荐(0)
摘要:单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某 一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就 能派上用场。 单例类:如果一个类,从头到尾只开辟了一块属于对象的空间,那么这个类就是一个单例类。 准备工作: ----#__init__()方法叫初始化方法 ----#__new__()方法叫构造方法 例子: ... 阅读全文
posted @ 2018-03-01 20:09 小学弟- 阅读(164) 评论(0) 推荐(0)
摘要:Python3 多继承的MRO算法选择。MRO(Method Resolution Order):方法解析顺序。 Python3 只保留了C3算法! C3算法解析: 1.C3算法解析 C3算法:MRO是一个有序列表L,在类被创建时就计算出来了。 L(Child(Base1, Base2)) = [Child + merge(L(Base1), L(Base2), Base1Base2)] L... 阅读全文
posted @ 2018-02-27 20:40 小学弟- 阅读(210) 评论(0) 推荐(0)
摘要:1.面向对象结构分析: ----面相对象整体大致分为两块区域: --------第一部分:静态字段(静态变量)部分 --------第二部分:方法部分 --每个大区域可以分为多个小部分: class A: cooname = 'Jake' # 静态变量(静态字段) __cooage = 20 # 私有静态变量(私有静态字段) def __init__(self, n... 阅读全文
posted @ 2018-02-27 15:51 小学弟- 阅读(386) 评论(0) 推荐(0)
摘要:广义的封装:实例化一个对象,给对象空间封装一些属性。 狭义的封装:私有制 私有成员:私有静态字段,私有方法,私有对象属性 对于私有静态字段,私有方法,私有对象属性,类的外部不能访问. # 实例化对象不能访问私有静态字段,私有方法,私有对象属性 # 类名不能访问私有静态字段,私有方法,私有对象属性 对 阅读全文
posted @ 2018-02-26 19:11 小学弟- 阅读(159) 评论(0) 推荐(0)
摘要:python没有多态?他有什么? 他有鸭子类型. 鸭子类型 : 看着像鸭子,他就是鸭子. 比如一些类,他们中有一些方法,有着相同的功能, 这时为我们将这些相同功能的名字命名为一样的。 那么这些类 都互称为鸭子. class Str: def index(self): pass class List: 阅读全文
posted @ 2018-02-26 15:30 小学弟- 阅读(249) 评论(2) 推荐(0)
摘要:Python面向对象之接口类(抽象类):就是制定一个规范。 比如定义了一个接口类(抽象类)(他们是不可以进行实例化的,这就是他为什么是制定一个规范的原因)。 他的定义是需要abc模块,要变的就是他的方法,比如下面的pay方法, 定义好一个抽象类(接口类)Payment,他用装饰器@abstractmethod将pay方法装饰 这样,其他类如果都继承了Payment方法,其他类中就都需要有一个p... 阅读全文
posted @ 2018-02-26 15:01 小学弟- 阅读(259) 评论(0) 推荐(0)
摘要:继承: 单继承和多继承 1.初识 class Father(object): #如果不写object默认继承 pass class Son(Father): #括号里面的称为:父类或基类或超类 括号外面的称为:子类或派生类 pass class Animal: breath = '呼吸' def _ 阅读全文
posted @ 2018-02-25 22:49 小学弟- 阅读(188) 评论(0) 推荐(0)
摘要:# 组合: 给一个类的对象封装一个属性,这个属性是另一个类的对象. class GameRole: def __init__(self, name, ad, hp): self.name = name self.ad = ad self.hp = hp def attack(self, p): p.hp = p... 阅读全文
posted @ 2018-02-24 20:22 小学弟- 阅读(145) 评论(0) 推荐(0)
摘要:1.类的定义 定义是用过class关键字 class Student(object): pass class 后面紧接着是类名,即Student,类名通常是大写开头的单词, 紧接着是(object),表示该类是从哪个类继承下来的。如果没有合适 的继承类,就使用object类,这个是所有类最终都会继承的类。 定义好了Student类,就可以根据Student类创建出Stude... 阅读全文
posted @ 2018-02-23 17:14 小学弟- 阅读(186) 评论(0) 推荐(0)
摘要:内置函数二: 1.lambda (匿名函数) 为了解决一些简答的需求而设计的一句话函数。不需要def来声明。 def func(n): return n*n print(func(10))#100 f = lambda n: n*n print(f(10))#100 注意: 语法:函数名 = lam 阅读全文
posted @ 2018-02-20 14:51 小学弟- 阅读(236) 评论(0) 推荐(0)
摘要:内建函数 1. abs(number) 用法:返回数字的绝对值 2. all(iterable) 用法:如果iterable的所有元素都是真值,就返回True,否则返回False 3. any(iterable) 用法:如果iterable的所有元素都是假值,就... 阅读全文
posted @ 2018-02-19 21:00 小学弟- 阅读(179) 评论(0) 推荐(0)
摘要:生成器 通过列表生成式,我们可以直接创建一个列表。但是受内存限制,列表容量肯定是有限的。 而且,创建一个很多很多元素的列表,不仅占用很大的内存空间,如果我们仅仅访问前几 元素,那后面绝大多数的元素占用的空间就白白浪费了。 所以,如果列表元素可以按照某种算法推算出来,那多好!这样就不必浪费空间了,这样 你好我好大家好。 在Python中,这种一边循环一边计算的机制,称为生成器:... 阅读全文
posted @ 2018-02-18 14:48 小学弟- 阅读(252) 评论(0) 推荐(0)
摘要:闭包 学习闭包前先要知道 函数名的运用 函数名就是一个变量,但是他是一个特殊的变量,与括号配合可以执行函数的变量。 1.函数名的内存地址 def func(): print('hello') print(func) 结果: 2.函数名可以赋值给其他变量 def func(): print("hello"... 阅读全文
posted @ 2018-02-17 21:27 小学弟- 阅读(157) 评论(0) 推荐(0)
摘要:1.迭代和可迭代协议 1)什么叫迭代 for i in [1,2,3,4]: print(i) 结果: 1 2 3 4 for i in 1234 print(i) 结果: Traceback (most recent call last): File "test.py", line 4, ... 阅读全文
posted @ 2018-02-17 20:21 小学弟- 阅读(152) 评论(0) 推荐(0)
摘要:列表生成式 列表生成式即List Comprehensions ,是Python内置的非常简单却强大的可以用来创建list的生成式 例子: 要生成list [1,2,3,4,5] 可以用 list(range(1,6)) 但是如果要生成[1*1,2*2,3*3,4*4,5*5]怎么办? 一种方法是循环 L = [] for i in range(1,6): ... 阅读全文
posted @ 2018-02-17 10:18 小学弟- 阅读(185) 评论(0) 推荐(0)
摘要:准备知识: 1.在Python解释器开始执行之后,机会在内存中开辟一个空间,每当遇到 一个变量的时候,就把变量和值之间的关系记录下来,但是当遇到函数定义 的时候,解释器只是把函数名读入内存,表示这个函数存在,至于函数内部 的变量和逻辑,解释器是不关心的。也就是说一开始的时候函数只是加载进 来,仅此而已,只有当函数被调用和访问的时候解释器才会根据函数内部声 明的变量来进行开辟变量的内部... 阅读全文
posted @ 2018-02-13 15:38 小学弟- 阅读(235) 评论(0) 推荐(0)
摘要:函数的参数: 先来安利一下:定义函数的时候,我们把参数的名字和位置确定下来,函数的接口就定义完了。 对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数返回什么样的值就够了, 函数内部的复杂逻辑被封装起来,调用者无需了解。 Python的函数定义非常简单,但是却非常灵活。除了正常定义的必选参数外,还可以使用默认参数, 可变参数和关键字参数,使得函数定义出来的接口,不... 阅读全文
posted @ 2018-02-12 16:01 小学弟- 阅读(208) 评论(0) 推荐(0)
摘要:''' 吃的文件内容: 过油肉菜 尖椒菜 娃娃菜 ''' import os with open("吃的", mode="r", encoding="utf-8") as f1, \ open("吃的_副本", mode="w", encoding="utf-8") as f2: # s = f1.read() # ss = s.... 阅读全文
posted @ 2018-02-11 17:07 小学弟- 阅读(170) 评论(0) 推荐(0)
摘要:Python文件操作 准备工作: 1) 使用python来读取文件是非常简单的操作,我们使用open()函数来打开一个文件,获取到文件句柄, 然后通过文件就可以进行各种各样的操作了。根据打开方式的不同能够执行的操作也会有相应的差异。 2) 打开文件的方式:r,w,a,r+,w+,a+,rb,wb,ab,r+b,w+b,a+b默认使用的是r(只读)模式。 3) 相对路径:相对于当前程... 阅读全文
posted @ 2018-02-11 16:41 小学弟- 阅读(190) 评论(0) 推荐(0)