1.# 按照以下要求实现面向对象编程: # a.创建一个Animal类, # name属性设置为实例属性且可传递参数, # 然后age属性设置为私有初始值为0, # type属性设置为类属性值为狗;
# 设置一个实例方法eat(), # 打印”狗吃骨头”;(放入一个模块中-模块名tools)
# b.重新创建一个demo.py文件, # 引入tools模块,然后定义一个Dog类, # 继承Animal,
重写里面的eat(), # 在原有基础上(”狗吃骨头”), 添加打印内容“吃完骨头瑶瑶头...”
#tools文件中
class Animal:#创建一个Animal类
type = '狗'#类属性值为狗
def __init__(self, name, age=0):#name属性设置为实例属性且可传递参数
self.name = name
self.__age = age#age属性设置为私有初始值为0
def eat(self):#实例方法eat()
print(f'{Animal.type}吃骨头')
# 打印”狗吃骨头”;(放入一个模块中-模块名tools)
#demo.py文件中
from kashi.tools import Animal#导包tools
class Dog(Animal):#继承Animal
def eat(self):#实例方法eat()
super().eat()#重写扩展eat
print('吃完骨头瑶瑶头...')
# 在原有基础上(”狗吃骨头”), 添加打印内容“吃完骨头瑶瑶头...”
dog=Dog('小黑')#传参name
dog.eat()#调用eat方法
2.# 按要求编写json文件,并通过程序读取文件内容。 # # 需求:小明是个男生,今年20岁了,毕业于清华大学, # 家里养的宠物有1岁的狗、2岁的猫、3岁的猪, # 他的幸运数字是2、5、8。请把上面的信息用JSON数据来表示, # 并保存到data.json文件中。
# 要求: # 1.使用PyTest框架编写测试脚本 # 2.读取json文件,并打印出姓名和学校名称 # 3.断言姓名是否等于"小明",断言学校名称中是否包含"清华"
import json
import pytest
user = {'name': '小明', 'age': 20, 'school':'清华大学',
"animal": [{"name":"狗", "age":1},{"name":"猫","age":2{"name":"猪","age":3}],
"luck_num": [2,5,8]}#定义数据
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(user, f, ensure_ascii=False)#生成data.json文件
class Test1:#随便整个用例
def test_01(self):
print('测试用例通过')
if __name__ == '__main__':#执行用例
pytest.main(['-s','15T.py'])
with open('data.json','r', encoding='utf-8') as a:
b = json.load(a)#读取data.json数据
print(f"姓名:{b['name']}t学校:{b['school']}")
class Test2:#断言姓名是否等于"小明",断言学校名称中是否包含"清华"
def test3(self):#断言正确
assert b['name']=='小明'
def test4(self): # 断言正确
assert '清华' in b['school']
if __name__ == '__main__':
pytest.main(['-s','15T.py'])



