● assert
● isinstance
● enumerate
● raise
a = [(i, j) for i in range(5) if i<4 for j in range(5) if j>2]
str = ‘{0:.2f}{1}’.format(27.658, ‘GB’)
● id(X)
● hash(X)
dic1 = dict([(‘apple’, 4139), (‘peach’, 4127), (‘cherry’, 4098)])
print(dic1) # {‘cherry’: 4098, ‘apple’: 4139, ‘peach’: 4127}
dic = dict(name=’Tom’, age=10)
print(dic) # {‘name’: ‘Tom’, ‘age’: 10}
● zip(iter1 [,iter2 […]])
lambda argument_list: expression
expression - 只是一个表达式,输入函数参数,输出一些值。
注意:

  1. expression 中没有 return 语句,因为 lambda 不需要它来返回,表达式本身结果就是返回值。
    odd = lambda x: x % 2 == 1
    templist = filter(odd, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    m1 = map(lambda x: x 2, [1, 2, 3, 4, 5])
    class Test:
    def prt(self):
    print(self)
    print(self.
    class**)

Python 的 self 相当于 C++ 的 this 指针。
类的方法与普通的函数只有一个特别的区别 —— 它们必须有一个额外的第一个参数名称(对应于该实例,即该
对象本身),按照惯例它的名称是 self 。在调用方法时,我们无需明确
提供与参数 self 相对应的参数。
类有一个名为 init(self[, param1, param2…]) 的魔法方法,该方法在类实例化时会自动调用。

在 Python 中定义私有变量只需要在变量名或函数名前加上“_”两个下划线,那么这个函数或变量就会为私有的了。
call()方法,代表可以像函数一样使用对象名。
私有,from a import 无法导入,import a可以
私有,外部无法直接访问,用’.’点不出来
*xxx
:系统自定义的魔法属性和方法

class DerivedClassName(modname.BaseClassName):
如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法或属性。
解决该问题可用以下两种方式:

  1. 调用未绑定的父类方法 Fish.init(self)
  2. 使用super函数 super().init()

协议(Protocols)与其它编程语言中的接口很相似,它规定你哪些方法必须要定义。然而,在 Python 中的协议就显得不那 么正式。事实上,在 Python 中,协议更像是一种指南。

● iter()
● next()

在 Python 中,使用了 yield 的函数被称为生成器(generator) , 生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

import 模块名
from 模块名 import 函数名

if name == “main“ :
如果一个 .py 文件(模块)被直接运行时,其 name 值为 main ,即模块名为 main
当 .py 文件被直接运行时, if name == ‘main‘ 之下的代 码块将被运行;当 .py 文件以模块形式被导入时, if name == ‘main‘ 之下的代码块不被运行。

包是一种管理 Python 模块命名空间的形式,采用”点模块名称”。
创建包分为三个步骤:

  1. 创建一个文件夹,用于存放相关的模块,文件夹的名字即包的名字。
  2. 在文件夹中创建一个 init.py 的模块文件,内容可以为空。
  3. 将相关的模块放入文件夹中。

导入语句遵循如下规则:如果包定义文件 init.py 存在一个叫做 all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。

同时会把 init.py 里面定义的所有名字导入进来。并且他不会破坏掉我们在这句话之前导入的所有明确指定的模块。

datatime
data
time
timedelta
parser.parse()

f.readline()
f.readlines()
f.tell()
f.seek(0,0,)

如果文件打开模式带 b ,那写入文件内容时, str (参数)要用 encode 方法转为 bytes 形式,否则报 错: TypeError: a bytes-like object is required, not ‘str’ 。

f.write()把字符串写入
f.writelines()把列表写入

os.mkdir(path) 创建单层目录
os.makedirs(path) 用于递归创建多层目录
os.remove(path) 用于删除指定路径的文件。

pickle.dump
pickle.load

OrderedDict

OrderedDict会根据放入元素的先后顺序进行排序。所以输出的值是排好序的。
OrderedDict对象的字典对象,如果其顺序不同那么Python也会把他们当做是两个不同的对象