共计 2325 个字符,预计需要花费 6 分钟才能阅读完成。
随便叨叨
真的是很话唠的在下了。昨天没有很完整的学习,就没有发布笔记了。昨天主要是匆匆忙忙的回家了,买了好吃的法棍回家,好吃的法棍简直是战斗力的最佳保证!然后和家里人聊聊天,其实平时对着电脑多了,对着电脑聊天总是不如面对面来的有感觉。PS: 但是还是很讨厌接到工作上的完全没逻辑的电话的。2018 的最后两天。我很想念小胡哥哥,大概这个地方他都看不到的吧,毕竟学术上我们俩的交叉是极少的。希望 2019 年会变成更好的自己,也能拥有更多掌握自己生活的能力。
开始认真学习的分割
简单打点鸡血吧!大学时候很喜欢的一段话。每一个优秀的人,都有一段沉默的时光。那一段时光,是付出了很多努力,忍受孤独和寂寞,不抱怨,不诉苦,日后说起时,连自己都能被感动的日子。
偏函数 Partial function
不同于高数里的偏函数。这个属于 Python 的 functools 里提供的一个很有用的功能。主要用于,设定函数的默认值,但并不改变原有的函数。比如对 int() 函数设定额外的参数 base= 8 改为八进制来进行整数转化。
#正常情况下
int(‘12345′,base = 8)
#或者我们考虑自己定义个函数 int2
def int2(x,base=8):
return int(x,base)
而 functools.partial 就不需要自己另外定义函数。
import functools
int2 = functools.partial(int,base=2)
此时 int2() 就是创建出来的一个全新的函数。
简单总结 functools.partial 的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
然鹅这个偏函数,还可以在另外加入参数。
当函数的参数个数太多,需要简化时,使用 functools.partial 可以创建一个新的函数,这个新函数可以固定住原函数的部分参数,从而在调用时更简单。
在使用中应该要多考虑下使用场景,又是反复使用偏函数可能会产生反效果(个人感觉,还需要实践测试)。
模块
模块要尽可能的不和内置函数产生冲突。为了不和别人的模块冲突,所以有了包。包名不冲突,那所有的模块就不会冲突了。每一个包目录下面都会有一个__init__.py 的文件,这个文件是必须存在的,否则,Python 就把这个目录当成普通目录,而不是一个包。因为有了包,有了模块,所以可以产生多级的文件树。
使用模块
sys 模块下有一个 argv 参数,用 list 存储命令行的所有参数。所以 argv 必定有至少一个参数,就是文件名。
if __name__==’__main__’:
test()
当命令行运行 hello 模块文件时候,Python 解释器把特殊变量__name__置为__main__,而如果在其他地方导入该 hello 模块时候,if 判断将失效。
比如当进入交互模式时候,导入 hello 模块,不会直接执行 test() 函数,需要调用。
作用域
在 Python 里,我们通过_前缀来实现私有变量。分为正常的朋友、特殊的朋友、和暗搓搓的朋友。正常的朋友就是正常可以直接引用的。特殊的朋友,比如__xx__这个样子的,虽然可以被直接引用,但是有特殊用途。比如可以暴露我身份的__author__就是特殊变量啦。然后_xx 这个样子的朋友,就是暗搓搓的朋友们啦,非公开的,不应该直接被引用。
def _private_1(name):
return ‘Hello, %s’ % name
def _private_2(name):
return ‘Hi, %s’ % name
def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)
在模块内公开 greeting() 函数,但是内部逻辑用私有函数隐藏,这样调用的时候就不考虑内部逻辑。非常有用的代码封装和抽象的方法外部需要引用的函数才定义为 public,不需要引用的全部定义成 private
安装第三方模块
在 Python 中,安装第三方模块,是通过包管理工具 pip 完成的。
然鹅这一步,在 Mac 或者 Linux 下是不需要安装 pip 的。(悲伤的 windows 鹅,幸好安装 Python 的时候妥妥安装了
第三方库一般都有官方注册
安装常用模块
用 Anaconda,一个基于 Python 的数据处理和科学计算平台,已经内置很多有用的第三方库。
Anaconda 会把系统 Path 中的 python 指向自己自带的 Python,并且,Anaconda 安装的第三方模块会安装在 Anaconda 自己的路径下,不影响系统已安装的 Python 目录。
可以尝试直接 import numpy 等已安装的第三方模块
模块搜索路径
添加自己的搜索目录,有俩办法
修改 sys.path,添加要搜索的目录
import sys
sys.path.append(‘/user/gaga/my_py_scriptss’)
- 设置环境变量 PYTHONPATH, 不影响 Python 自身的搜索路径。
面向对象编程
emmm,真是个令人悲伤的标题。Object Oriented Programming—> 所以 OOP 才是一种程序设计思想吗?…. 只是思想 ….
OOP 把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。
突然觉得 OOP 是一个很浪漫的思想。(题外话)
面向对象的设计思想是抽象出 Class,根据 Class 创建 Instance。面向对象的抽象程度又比函数要高,因为一个 Class 既包含数据,又包含操作数据的方法。
类和实例
类的定义是使用 class 关键字。
—– 困了的分界线,明日继续分解下一回合 …(好像明日 2019 年???今晚小酌一杯再来继续!