类:多个类似事物组成的群体的统称
用type()验证
print(type('1'))
>> <class 'str'>
类与实例---->群体和个体
类分类:属性、方法
- 创建class
实例方法:def +方法名(self):
类名大写 - 调用(接创建)
my_computer=Computer()#类的实例化,类下创建一个实例对象,可以调用所属类的所有属性方法
print(my_computer.screen)
my_computer.start()
创建:class
属性创建:赋值语句
实例方法创建:def method 1(self): 调用时不用带self
实例化:实例名=类名()
调用属性:实例名.属性
调用方法:实例名.方法()
- 特殊参数:self(创建方法时将第一参数位置留给self)
- 接收实例化过程中传入的数据,当实例对象创建后,实例便会代替 self,在代码中运行。
- 在类的内部调用类属性,而实例又还没创建之前,self先代替实例接收数据。(eg. self.属性名、self.方法名)
- 初始化方法(构造函数)
语法:def __init __(self)
作用:当每个实例对象创建时,方法内代码无需调用就嫩自动运行
class Chinese:
def __init__(self):
print('很高兴遇见你,我是初始化方法')
person = Chinese()
>>很高兴遇见你,我是初始化方法
类的定制和继承(子、父类)
子类:1. 创建新的属性、方法
2. 修改父类的属性方法
- 继承语法:
class A【父类】(B【父类名】):
object是所有类的父类
class Chinese <==>class Chinese(object)
isinstance()函数:判断某个实例是否属于某个类 输出true、FALSE
print( isinstance(1,int)) >>True - 多层、重继承:class A(B,C,D)和子类更相关的父类会放在更左侧
调用时:左—>右(就近原则)
class C0:
name = 'C0'
class C2(C0):
num = 2
class C1:
num = 1
class C3:
name = 'C3'
class C4(C1,C2,C3):
pass
ins = C4()
print(ins.name) # 打印出C0
print(ins.num) # 打印出1
多重继承中,若某父类还有父类的话,会先继续往上找到顶。
子类继承父类方法:
def语句后接父类.方法(参数)
class Chinese:
def land_area(self,area):
print('我们居住的地方,陆地面积是%d万平方公里左右。'% area)
class Cantonese(Chinese):
# 间接对方法进行重写
def land_area(self, area, rate = 0.0188):
Chinese.land_area(self, area * rate)
# 直接继承父类方法,再调整参数。
gonger = Chinese()
yewen = Cantonese()
gonger.land_area(960)
yewen.land_area(960)
编码
1byte=8bit
UTF-8:针对Unicode的可变长度字符编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,UTF-8还可以兼容ASCII编码。
Unicode是内存编码的规范,UTF-8是如何保存和传输Unicode的手段
- 编码:‘内容’.encode(‘编码表’)
- 解码:‘内容’.decode(‘编码表’)
文件读写
open(‘文件位置’,‘r’,encoding=‘utf-8’)
- 相对路径:最完整的路径
- 绝对路径:【相对于当前文件夹】的路径(编写的这个py文件所放的文件夹路径!)
open('/Users/Ted/Desktop/test/word/abc.txt') #相对路径
open('word/abc.txt') #绝对路径
Windows系统里,常用\来表示绝对路径,/来表示相对路径,所以当你把文件拖入终端的时候,绝对路径就变成:C:\Users\Ted\Desktop\test\abc.txt
(与转义字符冲突,修改为)
打开
open('C:\\Users\\Ted\\Desktop\\test\\abc.txt')
#将'\'替换成'\\'
open(r'C:\Users\Ted\Desktop\test\abc.txt')
#在路径前加上字母r
读取
filecontent=file.read()
print(filecontent)
关闭
- 计算机能够打开的文件数量是有限制的,open()过多而不close()的话,就不能再打开文件了。
- 能保证写入的内容已经在文件里被保存好了。
file1.close()
写入:覆盖原有内容
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'w',encoding='utf-8')
file1.write('张无忌\n')
file1.write('宋青书\n')
增加:append
file1 = open('/Users/Ted/Desktop/test/abc.txt', 'a',encoding='utf-8')
file1.write('张无忌\n')
file1.write('宋青书\n')
图片、音频以二进制保存,用’wb’
with 写法
with open('文件地址','读写模式')as 变量名:
变量名.write('')
#无需用close()关闭
join():合并字符串
b.join(a)
语法:str.join(sequence) #str:用什么字符串连接
split():分离字符串变成列表
readline():按行读取