摘要: --反射 可以用过字符串的形式来操作(增删改查)一个对象的属性 有几种方法 getattr()获取 hasattr()判断 setattr()赋值 delattr()删除 class Person(object): def __init__(self,name,age): self.name = n 阅读全文
posted @ 2022-11-14 23:17 powfu 阅读(16) 评论(0) 推荐(0)
摘要: __call__方法 通过 实例名() 进行调用该方法 class school(): def __init__(self): pass def __call__(self, *args, **kwargs): print('我来自清华') sch = school() sch() class sc 阅读全文
posted @ 2022-11-14 23:09 powfu 阅读(39) 评论(0) 推荐(0)
摘要: django的日志使用python的logging模块 logging的四个模块 logger-记录器: 日志系统的入口,每个logger都是bucket,可以向这个bucket写入需要处理的信息,logger根据消息的日志级别来进行处理,接收来自大于logging定义的级别的消息,交给handle 阅读全文
posted @ 2022-11-14 22:42 powfu 阅读(300) 评论(0) 推荐(0)
摘要: 类方法与静态方法 类方法:类方法通过@classmethod装饰器实现,类方法与普通方法的区别是,类方法只能访问类变量,不能访问实例变量。因为添加classmethod后,self不代表实例,而代表类本身,所以类方法可以直接用类去调用,也可以用实例对象去调用。 静态方法:静态方法不能访问类变量,也不 阅读全文
posted @ 2022-11-13 23:32 powfu 阅读(35) 评论(0) 推荐(0)
摘要: 对象继承 单继承:即继承父类的属性方法 super()方法 场景:既想用父类的__init__属性,又想用自己的__init__属性,如果不在子类中加这个函数,直接在子类写__init__,那么会重写父类__init__,相当于覆盖。 以下中在子类的__init__方法中使用 super().__i 阅读全文
posted @ 2022-11-13 22:43 powfu 阅读(21) 评论(0) 推荐(0)
摘要: OS模块 SYS模块 time模块 datetime模块 阅读全文
posted @ 2022-11-13 22:28 powfu 阅读(18) 评论(0) 推荐(0)
摘要: 闭包: 正常情况下,上例中a变量在return语句后,a变量会被释放。但由于内部inner函数继续调用a变量,导致a变量没有被释放。这种现象叫闭包 def outer(): a=1 def inner(): print(a) return inner #在这并没有执行inner函数。只是返回inne 阅读全文
posted @ 2022-11-13 22:19 powfu 阅读(26) 评论(0) 推荐(0)
摘要: 迭代器: 迭代器是访问可迭代对象的工具,用iter(obj)函数返回对象实例,再用next(it)获取迭代对象的数据。 好处:我们在访问可迭代对象是,加入迭代对象很大,如果直接访问,占用大量内存,通过迭代器,一个一个的访问,减少内存的使用 I = [1,3,5,7,9] it = iter(I) p 阅读全文
posted @ 2022-11-13 22:00 powfu 阅读(29) 评论(0) 推荐(0)
摘要: 生成器 我们在函数中使用yield,这个函数就是生成器函数。 生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。 以下面的案例举例:当主函数f = fib(10)执行时,fib函数不会被立即调 阅读全文
posted @ 2022-11-13 21:54 powfu 阅读(62) 评论(0) 推荐(0)
摘要: --栈 #规则:先进后出,只能对栈顶进行操作 #应用:浏览器的返回 实现方式一 以列表尾部作为栈的顶端 class Stack(): def __init__(self): self.items = [] def push(self,item): #往栈追加一个元素 self.append(item 阅读全文
posted @ 2022-11-13 21:34 powfu 阅读(19) 评论(0) 推荐(0)