12 2021 档案
摘要:#使用生成器完成斐波那锲 def create_num(all_num): a, b = 0, 1 current_num = 0 while current_num < all_num: yield a#有yield就是生成器 a, b = b, a+b current_num += 1 obj
阅读全文
摘要:#定义一个新的类,继承dict类,实现根据value或者key的功能 class ValueDict(dict): #定义构造函数 def __init__(self, *args, **kargs): #调用父类的初始化函数 super().__init__(*args,**kargs) #add
阅读全文
摘要:class Cell: #使用@property修饰方法,相当于为改属性设置getter方法 @property def state(self): return self._state #为state属性设置setter方法,这样state属性就变成了读写属性 @state.setter def s
阅读全文
摘要:class A: def __init__(self,width,heigth): self.width = width self.heigth = heigth def __setattr__(self,name, value): print(" set %s attribute" %name)
阅读全文
摘要:#对于弱类型的语言来说, 变量没有申明类型,因此同一个变量完全可以再不同的事件引用不同的对象,当同一个变量再调用同一个方法时候,完全可以呈现出多种行为 #这就是多态 #DrawCanvas的draw_canvas方法传入一个shape参数,该方法就是调用shape参数的draw方法,将自己绘制再画布
阅读全文
摘要:类变量是在类空间中命名的,就是不加self的变量。 因此,程序不能直接访问这些变量,必须通过类名+类变量来访问, 不管是在全局范围内还是函数内访问这些类变量,都必须使用类名进行访问 class Address: detail = "guangzhou" post_code = "510660" de
阅读全文
摘要:被装饰的函数,总是被替换成@符号所引用的函数的返回值。这是本质 因此,被装饰的函数会变成什么,完全取决于@符号所引用的函数的返回值 如果@符号所引用的函数,返回值是字符串,那被装饰的函数就被替换成了字符串 如果@符号所引用的函数,返回值是函数,那被修饰的函数在替换之后还是函数 1. def funA
阅读全文
摘要:class Bird: #类方法 @classmethod def fly(cls): print("类方法fly:",cls) #静态方法 @staticmethod def info(p): print("静态方法 info:",p) #类方法会自动绑定第一个参数,一般是类的名字 Bird.fl
阅读全文
摘要:class A: def __init__(self,name,age): self.name = "shun" self.age = 18 def eat(self): print (" i want to eat") A.eat() 报错, self 表示实例, A.eat()没有传入实例 cl
阅读全文