ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

8/21 python基础学习4

2022-08-22 02:01:05  阅读:181  来源: 互联网

标签:__ 21 python self 学习 json file print name


第九章 类

类的创建:

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()方法,来建立测试用例。

标签:__,21,python,self,学习,json,file,print,name
来源: https://www.cnblogs.com/hy227/p/16611574.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有