美文网首页
05面向对象高级编程

05面向对象高级编程

作者: 雪梦_93d4 | 来源:发表于2020-07-12 17:31 被阅读0次

    __slots__限制实例的属性,如只允许对Student实例添加name和age属性

    classStudent(object):

         __slots__ = ('name','age')# 用tuple定义允许绑定的属性名称

    日志:

    使用logging模块,程序打印完错误信息后会继续执行,并正常退出;

    logging的好处,它允许你指定记录信息的级别,有debug,info,warning,error等几个级别

    import logging

    def foo(s):

        return 10/ int(s)

    def bar(s):

        return foo(s) *2

    def main():

        try:

            bar('0')

        except Exception as e:

            logging.exception(e)

    单元测试:

    编写单元测试时,我们需要编写一个测试类,从unittest.TestCase继承。

    以test开头的方法就是测试方法,不以test开头的方法不被认为是测试方法,测试的时候不会被执行。

    对每一类测试都需要编写一个test_xxx()方法。由于unittest.TestCase提供了很多内置的条件判断,我们只需要调用这些方法就可以断言输出是否是我们所期望的。最常用的断言就是assertEqual(),self.assertEqual(abs(-1),1), 抛出指定类型的断言:

    with self.assertRaises(KeyError):

        value = d['empty']

    with self.assertRaises(AttributeError):

        value = d.empty

    setUp()和tearDown()方法

    文档测试

    import doctest 

    doctest.testmod()

    IO编程

    with open("", 'rw') as f:

        print(f.read())

        f.write('Hello')

        f.close()

    StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口。

    >>> from io import StringIO

    >>> f = StringIO()

    >>> f.write('hello')

    操作文件和目录

    import os

    os.path.split() 把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

    os.path.splitext()可以直接让你得到文件扩展名

    os.path.join('/Users/michael','testdir') 在某个路径下创建一个新的文件夹

    os.listdir('./') 列出dir

    相关文章

      网友评论

          本文标题:05面向对象高级编程

          本文链接:https://www.haomeiwen.com/subject/stfncktx.html