第九章 类
类的创建:
class Dog:
def __init__(self, name, age): # 初始化函数
self.name = name
self.age = age
def sit(self):
print(f"{self.name} is now sitting")
class my_dog(Dog):
def __init__(self, name, age, color):
super().__init__(name, age)
self.color = color
def print(self):
print(f" name = {self.name}/n age = {self.age}/n color = {self.color}")
Adog = Dog("feifei", 4)
md = my_dog("feifei", 4, "white")
md.print()
继承:()内指定要继承的父类。
super() 让子类可以调用父类的方法。
python的属性和函数默认是public
类的私有属性便是在前面加上“__”标识符,而公共属性则不必。
类的文件也可以像函数模块一样import
注意:可以多用别名
第十章 文件和异常
书上有些谬误,比如读文件得到的字符串已经不包含额外的换行。
以及读到的文件对象,不能直接逐行遍历,要先分割read()得到的字符串。
读取文件:
with open('num.txt') as file_obj:
contents = file_obj.read()
print(contents)
由于反斜杠/是转义字符,下面两种路径效果一样
with open('C://Users//admin//Desktop//name.txt') as file_obj:
contents = file_obj.read()
with open('C:/Users/admin/Desktop/name.txt') as file_obj:
con = file_obj.read()
lines = con.split("/n")
for line in lines: #逐行输出
print(line)
注意使用with关键字时,open()返回的文件对象只能在with代码块中使用。
字符串可以直接使用if(str in strall)来判断字符串是否存在strall中
python写入文件,a+为附加模式。
with open('C:/Users/admin/Desktop/name.txt', 'a+') as file_obj:
con = file_obj.read()
file_obj.write("/nlisi")
异常
使用try-except代码块,如果发生了问题,可以执行except中的代码,而不是直接报错。
try:
print(5/0)
except ZeroDivisionError:
print("error!/nyou can't divide by zero")
else:
print("exit")
else里可以执行,运行成功后执行的代码。
可以使用pass来让代码块中什么都不做。
使用json来存储数据以便多个程序共享:
写程序
import json
nums = [2, 3, 3, 4, 5, 6, 7, 8, 9]
file_name = 'num.json'
with open(file_name, 'w') as f:
json.dump(nums, f)
读程序:
import json
file_name = 'num.json'
with open(file_name) as f:
nums = json.load(f)
print(nums)
使用方法类似共享内存,需要一个写死的字符串来共享数据。
dumps()函数将JSON对象转为文本字符串。
写代码降低耦合性,把功能尽量分开划分,方便代码维护。
第十一章 测试代码
python在模块 unittest 提供了代码测试工具。
单元测试
import json
import unittest
from test import input_num
class json_test(unittest.TestCase):
def test(self):
input_num([3, 4, 5, 6])
file_name = 'num.json'
with open(file_name) as f:
test_num = json.load(f)
self.assertEqual(test_num, [3, 4, 5, 6])#断言方法
if __name__ == '__main__':
unittest.main()
unittest.main()运行测试类开头为“test”的函数。
可以使用定义set_up()方法,来建立测试用例。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/281537.html