1.@property装饰器
建议将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便。
class Person(object):
def __init__(self, name, age):
self._name = name
self._age = age
# 访问器 - getter方法
@property
def name(self):
return self._name
# 访问器 - getter方法
@property
def age(self):
return self._age
# 修改器 - setter方法
@age.setter
def age(self, age):
self._age = age
2.slots魔法
如果我们需要限定自定义类型的对象只能绑定某些属性,可以通过在类中定义slots变量来进行限定。需要注意的是slots的限定只对当前类的对象生效,对子类并不起任何作用。
class Person(object):
# 限定Person对象只能绑定_name, _age和_gender属性
__slots__ = ('_name', '_age', '_gender')
3.main设定
为了防止B脚本引用A脚本时,会将A脚本的语句知行,常用此方法,这样只有运行A脚本时,A脚本内部的命令才会执行,在B脚本中引用A脚本时,不会运行A脚本的命令。
def main():
# Todo: Add your code here
pass
if __name__ == '__main__':
main()
4.类的继承
父类可以建立主要的信息,子类继承父类的基础上进行扩充,def__init__(self,)可做类的第一个函数,用于规定类的默认变量,后续的函数用self可以使用这些变量。子类带上父类class Student(Person),使用super()init便可以使用父类的变量。
class Person(object):
"""人"""
def __init__(self, name, age):
self._name = name
self._age = age
def play(self):
print('%s正在愉快的玩耍.' % self._name)
class Student(Person):
"""学生"""
def __init__(self, name, age, grade):
super().__init__(name, age)
self._grade = grade
def study(self, course):
print('%s的%s正在学习%s.' % (self._grade, self._name, course))
stu = Student('王大锤', 15, '初三')
stu.study('数学')
stu.watch_av()
t = Teacher('骆昊', 38, '老叫兽')
t.teach('Python程序设计')
t.watch_av()
5.文件操作命令
操作模式 具体含义
'r' 读取 (默认)
'w' 写入(会先截断之前的内容)
'x' 写入,如果文件已经存在会产生异常
'a' 追加,将内容写入到已有文件的末尾
'b' 二进制模式
't' 文本模式(默认)
'+' 更新(既可以读又可以写)
6.简单的文件读取
def main():
f = open('致橡树.txt', 'r', encoding='utf-8')
print(f.read())
f.close()
if __name__ == '__main__':
main()
7.if特殊用法
if 的判断条件是非空或者非0,即可执行后续的行为。故下面的语句只有在f为非空值或者非0条件下才会执行。
f=None
if f:
print('空值')
8.文件异常处理
def main():
f = None
try:
f = open('致橡树.txt', 'r', encoding='utf-8')
print(f.read())
except FileNotFoundError:
print('无法打开指定的文件!')
except LookupError:
print('指定了未知的编码!')
except UnicodeDecodeError:
print('读取文件时解码错误!')
finally:
if f:
f.close()
if __name__ == '__main__':
main()
先将可能出现错误的文件执行语句放在try语句中,except语句跟可能的错误,最后用finally语句实现文件的关闭。
更常用的替代方法是使用关键字with
def main():
try:
with open('致橡树.txt', 'r', encoding='utf-8') as f:
print(f.read())
except FileNotFoundError:
print('无法打开指定的文件!')
except LookupError:
print('指定了未知的编码!')
except UnicodeDecodeError:
print('读取文件时解码错误!')
if __name__ == '__main__':
main()
9.文件的读取与写入
with open('致橡树.txt', mode='r') as f:
#读取
print(f.read())
print(f.readlines())
#写入
f.write(str(number))
用with会自动释放文件资源,如果用的不是with,在文件读取写入后,需要使用f.close()关闭,释放资源。
10.json文件写入
with open('data.json', 'w', encoding='utf-8') as fs:
json.dump(mydict, fs)
#mydict是想要写入的内容
json模块主要有四个比较重要的函数,分别是:
dump - 将Python对象按照JSON格式序列化到文件中
dumps - 将Python对象处理成JSON格式的字符串
load - 将文件中的JSON数据反序列化成对象
loads - 将字符串的内容反序列化成Python对象
11.正则表达式是一种工具,它定义了字符串的匹配模式




Python提供了re模块来支持正则表达式相关操作,下面是re模块中的核心函数。


12.像素
对于一个由数字序列表示的图像来说,最小的单位就是图像上单一颜色的小方格,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置决定了该图像最终呈现出来的样子,它们是不可分割的单位,我们通常称之为像素(pixel)。每一个图像都包含了一定量的像素,这些像素决定图像在屏幕上所呈现的大小。
13.pillow图像操作
from PIL import Image
#打开图片
image=Image.open('./1.jpg')
#图像格式,尺寸,模式
image.format,image.size,image.mode
#展示图片
image.show()
图像裁剪
#xmin,ymin,xmax,ymax
crop_size=30,20,45,60
image.crop(crop_size).show()
图像缩放
image=Image.open('./1.jpg')
size=(128,128)
image.thumbnail(size)
image.show()
图像旋转与翻转
image=Image.open('./1.jpg')
image.rotate(180)
image.transpose(Image.FLIP_LEFT_RIGHT)
14.linux知识
- 重启和关机 - reboot / shutdown
- 查看历史命令 - history
- 创建/删除空目录 - mkdir / rmdir
- 创建/删除文件 - touch / rm
rm的几个重要参数:
-i:交互式删除,每个删除项都会进行询问。
-r:删除目录并递归的删除目录中的文件和目录。
-f:强制删除,忽略不存在的文件,没有任何提示。 - 根据指定URL下载资源,使用wget命令
wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh
- 查看文件内容 cat
- 拷贝/移动文件 - cp / mv
- 文件重命名 - rename。
网友评论