时间过得飞快,一个月的python核心基础课程已经结束了。学的晕晕乎乎的,总觉着自己没有长进。好多东西懵懵懂懂,一个屌丝要想蜕变成码农需要有螺丝钉的转劲儿的,Jerry老师用一篇开玛莎莱蒂的美文和我叫王顺德励志视频作为课程结束,意义在于让我们刻苦练习代码。我将本节课程复述一遍。
1、文件的其他写入方式
x 用来新建文件,如果不存在就创建文件,文件存在我就报错了
FileExistsError: [Errno 17] File exists: 'demo5.txt'
file_name = 'demo6.txt'
with open(file_name, 'x', encoding='utf-8') asfile_obj:
file_obj.write('nba\n')
2、 操作二进制文件
b 二进制文件
file_name = r'C:\Users\19214\Desktop\Kalimba.mp3'
with open(file_name,'rb') as file_obj:
print(file_obj.read(100))
将读取到的内容写出来
定义一个新的文件
new_name ='abc.mp3'
withopen(new_name,'wb') as new_obj:
chuck =1024 *100
while True:
从已有的文件读取内容
content = file_obj.read(chuck)
内容读取完毕,循环结束
ifnot content:
break
new_obj.write(content)
3、迭代器
迭代:就是在一些元素中获取元素的过程或者是一种方式
迭代器 它是一个可以记住遍历位置的对象。迭代器对象从序列中的一个元素开始访问,直到所有的元素被访问完结束,而且只能往前不能往后
可以被next()函数调用并不断返回下一个值的对象我们称之为迭代器Iterator
可迭代:可迭代对象 1. 生成器 2. 列表、元祖、字符串、字典...
生成器是可迭代的,也是迭代器
列表是可迭代的。但是它不是迭代器
iter(lst)
通过iter()函数可以将可迭代的变成一个迭代器
from collections import Iterable
lst = [1,2,3,4]
s = (x + 1 for x in range(5))
r = isinstance(lst,Iterable)
r = isinstance('abc',Iterable)
r = isinstance(132,Iterable)
r = isinstance(s,Iterable)
print(r)
lst = iter(lst)
print(next(lst)) # TypeError: 'list' object is not aniterator
print(next(lst))
生成器和迭代器
生成器的出现是为了优化程序节省内存
迭代器是一个大的范围而生成器只是迭代器的一种
4、 单例模式
单例模式是设计模式的一种,保证系统中的一个类只有一个实例
class Person:
pass
p1 = Person()
p2 = Person()
print(p1)
print(p2)
>>> 1、谁创建了对象?
Person类的父类是object 继承object
object有一个new方法来创建对象
创建对象之后,才可以执行 __init__(self),进行初始化
class Person:
def__new__(cls, *args, **kwargs):
print(123)
def__init__(self):
print('初始化方法....')
p1 = Person()
>>>2. 对象的执行顺序
class Person:
def__new__(cls, *args, **kwargs):
print(123)
obj =object.__new__(cls) #创建了一个对象
returnobj
def__init__(self):
print('创建完对象之后再初始化....')
p1 = Person()
class Person:
>>>3、私有变量
_instance =None
def__new__(cls, *args, **kwargs):
print(123)
ifPerson._instance is None:
obj= object.__new__(cls)
#创建了一个对象
Person._instance = obj
#将这个对象赋值给类的私有变量_instance
returnPerson._instance
def__init__(self):
print('创建完对象之后再初始化....')
p1 = Person()
p2 = Person()
p3 = Person()
print(id(p1),id(p2),id(p3))