02-26继承,多态,文件操作

继承

  • 在程序中,继承描述的是多个类之间的所属关系。
  • 如果一个类A里面的属性和方法可以复用,则可以通过继承的方式,传递到类B里。
  • 那么类A就是基类,也叫做父类;类B就是派生类,也叫做子类。
 1 class Animal(object):
 2     def __init__(self, name, age):
 3         self.name = name
 4         self.age = age
 5 
 6     def sleep(self):
 7         print(self.name + '正在睡觉')
 8 
 9 
10 class Dog(Animal):
11     def bark(self):
12         print(self.name + '正在叫')
13 
14 
15 class Student(Animal):
16     def study(self):
17         print(self.name + '正在好好学习')
18 
19 
20 # Dog() 调用 __new__ 方法,再调用 __init__ 方法
21 # Dog 里没有 __new__ 方法,会查看父类是否重写了 __new__ 方法
22 # 父类里也没有重写 __new__ 方法,查找父类的父类,找到了 object
23 
24 # 调用 __init__ 方法,Dog类没有实现,会自动找 Animal 父类
25 d1 = Dog('大黄', 3)
26 print(d1.name)  # 父类里定义的属性,子类可以直接使用
27 d1.sleep()  # 父类的方法子类实例对象可以直接调用
28 d1.bark()
29 
30 s1 = Student('小明', 18)
31 s1.sleep()
32 s1.study()

多继承时,当不同的父类拥有相同的方法时,子类调用时遵循深度优先,可以使用子类名.__mor__来查看顺序

多态

多态是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果

实现步骤:

  • 定义父类,并提供公共方法
  • 定义子类,并重写父类方法
  • 传递子类对象给调用者,可以看到不同子类执行效果不同

文件操作

打开文件

open(文件路径,访问模式)

f = open('test.txt', 'w')

第一个参数为文件路径,第二个问打开方式,一般还会指定编码方式encoding(gbk, utf8等)。

绝对路径

C:/Users/chris/AppData/Local/Programs/Python/Python37/python.exe,从电脑的盘符开始,表示的就是一个绝对路径。

相对路径

是从当前文件所在的文件夹开始的路径。如:demo/test.txt,在当前文件夹里查找 demo这个文件夹,并在这个文件夹里查找 test.txt文件。

常见访问模式

r :以只读方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,则报错。这是默认模式。

w:打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

r+:打开一个文件用于读写。文件指针将会放在文件的开头。

w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

rb:以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。

wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

读取

f.readline

读取一行数据

f.readlines

按行读取数据,返回一个列表,每行元素是列表的一个元素。

文件指针

tell() 方法用来显示当前指针的位置,f.tell().

seek(offset,whence) 方法用来重新设定指针的位置。

  • offset:表示偏移量
  • whence:只能传入012中的一个数字。
    • 0表示从文件头开始
    • 1表示从当前位置开始
    • 2 表示从文件的末尾开始
posted @ 2020-02-26 20:40  zjyss  阅读(161)  评论(0编辑  收藏  举报