python学习记录

1 yield

yield是一个类似return的关键字,只不过返回的是生成器

生成器函数被调用后,函数体内的代码不会立即被执行,而是返回生成器。当生成器调用成员方法时,相应的代码才会执行。

2 迭代器 生成器

具有yield关键字的函数都是生成器

2 reload

reload用于载入之前载入过的模块,模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

3 时间

import time

time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())

time.localtime是tuple,time.time是时间戳,datatime是一种单独的形式

4 文件读取

with open('/path/to/file','r') as f:

    data=f.read()

line = f.readline()   # 逐行提取

lines=f.readlines() # 文件每一行存储到list中,适用于文件较小的情况

    lines = list(f)

    for line in f:

        print line  #文件迭代器

5 路径问题

os.path.dirname(__file__)返回当前目录的上一级

os.path.abspath(__file__)返回当前文件的绝对路径

os.path.join(based,file)

6 面向对象编程

是一种程序设计的方法。其中最重要的两个概念是类和实例。类是抽象的模版,实例是类的一个个对象。

可以在_init_函数中定义公共的属性,

可以用双下划线代表私有属性,__init__,这样外部就不能随意修改属性值。如果要修改属性值,可以在类中写函数来修改,这样的好处是可以增加参数校验等逻辑。

多态:继承可以把父类的功能都继承过来,

property:把方法变成属性,以让调用者写出简短的代码,同时保证对参数进行必要的检查,这样,程序运行时就减少了出错的可能性。

多重继承:通过继承,一个子类可以同时获得多个父类的功能;

定制类:

_slots_:限制类的属性,classStudent(object):__slots__ = ('name','age') 则类只有name,age属性;

_str_:def _str_()

```

classStudent(object):

    def__init__(self, name):

        self.name = name

    def__str__(self):

        return'Student object (name=%s)'% self.name 

     __repr__ = __str__

访问限制:如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线;如self.__name

获取对象信息:isinstance()

eum:可以把相关常量定义在一个类中,成员可以相互比较。

class Gender(Enum):

    Male = 0

    Female = 1

7 正则表达式

8 高阶函数

map(f,迭代对象)把传入的函数依次作用到每个函数

reduce把一个函数作用在一个序列[x1, x2, x3, ...]上,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:

函数:如果不需要立刻计算返回结果,而是调用的时候再计算返回,则可以把函数作为返回结果

9 进程线程

一个进程可以包含多个线程

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容