随笔分类 - Python
摘要:在函数内部使用yield定义,这个函数就是一个生成器函数。 调用生成器函数的时候会返回一个生成器对象。 生成器函数内部,使用yield可以产生数据。 生成器对象内还有一个方法send,send方法可以由外部向内部进行传值。 执行过程: 当执行gen=MyGenerator()会直接生成返回一个生成器
阅读全文
摘要:如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator函数, generator和函数的执行流程不一样。 函数是顺序执行,遇到return语句或者最后一行函数语句就返回。 而变成generator的函数,在每次调用next()的时候执行,遇到yield语
阅读全文
摘要:上图的这些模式,都是以list对象和操作符[]来获取元素,而索引只是作为参数。这是一种迭代模式。 有没有一种模式,元素的提取只和下标打交道,而和可迭代对象无关。这样的一种设计模式,就是迭代器模式 for i in [1, 2, 3, 4]: print(i) for c in "python": p
阅读全文
摘要:__getattr__ 访问存在的属性时,会正常返回值;若该值不存在,则会进入最后的函数__getattr__抛出异常。 __setattr__,对对象的属性值进行设置的时候,会调用__setattr__方法。 __delattr__,删除属性的时候会默认调用这个。
阅读全文
摘要:property方法,一是让方法变成像类中的属性那样访问。第二个就是可以设置为可读写的属性。 property方法: class property([fget[, fset[, fdel[, doc]]]]) fget -- 获取属性值的函数 fset -- 设置属性值的函数 fdel -- 删除属
阅读全文
摘要:python是一个动态语言,因此可以根据类创建的实例任意绑定属性。给实例绑定属性的方法:1、通过实例变量2、通过self变量 class People(object): country = 'china' # 类属性print(People.country) #chinap = People()pr
阅读全文
摘要:1、当函数参数中要使用不定参数的时候,在参数前面加一个*号:例如 fun(*parm) parm=touple(parm1,parm2,parm3,…………) 这个时候如果有多个参数,这些参数会形成一个元组(一个参数就是单元组) 2、当函数参数中要使用默认参数的时候,在参数前面加两个**号:例如 f
阅读全文
摘要:在Python3中,字符串格式化操作通过format()方法,format()方法拥有更多的功能,操作起来更加方便。该函数将字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替%。 位置设定 不指定位置的时候,使用默认位置 不指定格式化位置,按照默认顺序格式化 S = '
阅读全文
摘要:class Bird: def __init__(self): self.hungry = True def eat(self): if self.hungry: print('我饿了') else: print('不饿,谢谢')class SongBird(Bird): def __init__(
阅读全文
摘要:python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身, 有时候还会有一个参数cls(相当于类名,当直接调用类方法的时候使用)。 python2中super()的用法: super(class,self).__init__() python3
阅读全文
摘要:1、使用: 父类.方法名(参数)class Base: def __init__(self): print('init action in father class Base')class A(Base): def __init__(self): print('init action in subc
阅读全文
摘要:对象都有一个从创建,使用,再到消亡的过程。而init、new、call就代表了这个过程。 使用class定义一个类时, __init__ 方法用的多(构造函数),而 __new__ 和 __call__ 使用得比较少。 第一:需要了解python中super()的用法。
阅读全文
摘要:今天在看代码的时候,看到一个dict comprehension,不太理解,然后就查了一下。 list comprehension比较好理解一点,dict comprehension平时可能用的也不多 list comprehension=[ ……code……] #value touple comp
阅读全文
摘要:python中所有的东西都是对象。 因此python中的类也是对象,它是一种特殊的对象,特殊在这个对象自身拥有创建对象的能力(这个对象(类)自身拥有创建对象(类实例)的能力),因此类的本质仍然是一个对象,而对于对象可以做如下的操作: 1) 可以将它赋值给一个变量 2) 可以拷贝它 3) 可以为它增加
阅读全文
摘要:python3的类 类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 是 self 有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用。 def __init__(self): self.data = [] #这个构造函数可以带参数。
阅读全文
摘要:在def下边定义字符串,可以和函数一起存储起来,这种字符串称为文档字符串。def sq(x): 'Calculates the sq of x' return x*xprint(sq.__doc__)print(help(sq))访问这个字符串,用函数内的__doc__属性访问。参数默认值def h
阅读全文
摘要:python中列表推导、字典推导,可以像循环,进行遍历。 列表类似于 for x in range (1,10): if x%3==0 x*x 把首字母相同的元素选出来,这种算法推导的时候,会遍历所有的可能,效率低。 girls=['alice','bernice','claric']boys=['
阅读全文
摘要:while循环x=1while x<=100: print(x) x=x+1 for循环 for number in range(1,101): print(number)对字典中的键、值、键-值的迭代。 d = {'x':1,'y':2,'z':3}for key,value in d.items
阅读全文
摘要:bool()方法 []、{}、()、"" 、''、False、None 这些都是假(False) if-else- elif(elseif) if a<=10 and a>0 is运算符
阅读全文
摘要:python中解包就是把变量依次赋值 元组解包,单元组的时候,注意写法 列表解包,列表解包中,可以利用*号,*号可以放在任何位置,其他的元素分配完毕之后,剩余的就是*号元素的值 字典解包,字典解包分配只要键,对应的值会被舍弃。 字符串解包
阅读全文

浙公网安备 33010602011771号