当前位置: 首页 > news >正文

免费自动生成小程序成都自动seo

免费自动生成小程序,成都自动seo,会计事务所,WordPress使用CDN无法登录1 python运算符重载之构造函数和迭代器 python运算符重载是在类方法中拦截内置操作-当类的实例使用内置操作时,pytho自动调用对应方法,并且返回操作结果。 NO#描述1拦截运算运算符重载拦截内置操作,比如打印、函数调用、点号运算、表达式运…

1 python运算符重载之构造函数和迭代器

python运算符重载是在类方法中拦截内置操作-当类的实例使用内置操作时,pytho自动调用对应方法,并且返回操作结果。

NO#描述
1拦截运算运算符重载拦截内置操作,比如打印、函数调用、点号运算、表达式运算等
2类似内置重载运算符让类实例的行为类似内置操作
3特定名称运算符重载通过定义特定名称的类方法类实现
4双下划线重载的方法名前后都有双下划线

1.1 常见运算符重载

NO方法内置操作描述
1init构造函数c=MyClass()
2del析构函数对象回收
3add运算符+如果没有__iadd__,x+y,x+=y
4or运算符|如果没有_ior__,x|y,x|=y
5repr,str打印print(x)、repr(x)、str(x)
6call函数调用x(*args,**kargs)
7getattr点号运算x.attr
8setattr属性赋值x.attr=value
9delattr删除属性del x.attr
10getattribute属性获取x.attr
11getitem索引分片运算x[key],x[m:n]
12setitem索引分片赋值x[key]=value,x[m:n]=序列
13delitem索引分片删除del[key],del[m:n]
14len长度len(x)
15bool布尔测试bool(x)
16ltgtlegeeqne关系运算符x<y,x>y,x<=y,x>=y,x==y,x!=y
17radd右侧加法Other+x
18iadd增强加法x+=y
19iternext迭代环境I=iter(X),next(I),for循环
20contains成员关系item in x
21index整数值hex(x),bin(x),oct(x),o(x)
22enterexit环境管理with obj as var:
23getset描述符属性x.attr,x.attr=value,dle x.attr
24new创建在__init__之前创建对象

1.2 init

python类调用小括号()创建实例时,会自动调用实例的构造函数__init__()。

>>> class A:def __init__(self):print('A.__init__')>>> class B(A):def __init__(self):print('B.__init__')>>> class C(A):pass>>> a=A()
A.__init__
# 子类和父类有init,自动调用子类init
>>> b=B()
B.__init__
# 子类无init,自动调用父类init
>>> c=C()
A.__init__

1.3 sub

python实例使用减法-表达式,会自动调用实例的__sub__()方法。

>>> class MyNumber:def __init__(self,begin):self.data=begindef __sub__(self,other):# 拦截减法(-)表达式return MyNumber(self.data-other)>>> n1=MyNumber(5)
>>> n2=n1-3
>>> n2.data
2

1.4 getitem__和__setitem

python实例使用索引和分片获取值时,会自动调用实例的__getitem__()方法;

设置值时,会自动调用__setitem方法;

迭代环境会自动调用__getitem__()方法;

>>> class MyIndex:def __getitem__(self,index):# []索引获取值时调用getitemreturn index*2
>>> mi=MyIndex()
>>> mi[2]
4
>>> for i in range(5):print(mi[i],end=' ')
0 2 4 6 8 
>>> class MySlice:data=[9,7,5,2,6,8]def __getitem__(self,index):# [:]分片获取值时调用getitemprint('索引:',index)return self.data[index]>>> ms=MySlice()
>>> ms[0]
索引: 0
9
>>> ms[1]
索引: 1
7
>>> ms[-1]
索引: -1
8
>>> ms[3:6]
索引: slice(3, 6, None)
[2, 6, 8]
>>> ms[1:]
索引: slice(1, None, None)
[7, 5, 2, 6, 8]
>>> ms[:-1]
索引: slice(None, -1, None)
[9, 7, 5, 2, 6]
>>> ms[::2]
索引: slice(None, None, 2)
[9, 5, 6]>>> class MySetitem:def __init__(self):self.changed={}def __setitem__(self,key,value):# 索引[]设置值时调用setitemself.changed[key]=valuedef __getitem__(self,key):return self.changed[key]
>>> ms=MySetitem()
>>> ms['s']='梯阅线条'
>>> ms['s']
'梯阅线条'>>> class MyStep:def __getitem__(self,i):# for循环迭代时调用getitemprint(i,end = ' ')return self.data[i]
>>> ms=MyStep()
>>> ms.data='梯阅线条'
>>> ms[0]
0 '梯'
>>> for item in ms:print(item,end=' ')
012 线 34 

1.5 iter__和__next

python迭代环境先调用__iter__()方法,不存在时再调用__getitem__()方法进行索引操作。

iter()方法返回迭代对象,迭代对象循环调用__next__()方法,直到发生StopIteration异常。

迭代环境循环调用__getitem__()方法,直到发生IndexError异常。

迭代器对象:具有__next__方法的对象;

可迭代对象:具有__iter__方法的对象;

可迭代对象调用__iter__方法,返回迭代器对象,再调用__next__方法;

1.5.1 单迭代器对象

iter()方法返回实例对象本身,为单迭代器对象,生成器函数和表达式、map、zip等;

>>> class MyIter:def __init__(self,start,stop):self.value=start-1self.stop=stop# 可迭代迭代对象拥有__iter__方法,返回迭代器对象    def __iter__(self):return selfdef __next__(self):# 迭代器对象拥有__next__方法if self.value==self.stop:raise StopIterationself.value+=1return self.value*2>>> for i in MyIter(1,5):# for迭代环境循环调用迭代器对象的next方法print(i,end=' ')
2 4 6 8 10 
>>> mi=MyIter(1,5)
>>> i=iter(mi)#等效于mi.__iter__()
>>> i
<__main__.MyIter object at 0x01269A50>
# 等效于 i.__next__()
>>> next(i)
2
>>> next(i)
4
>>> next(i)
6
>>> next(i)
8
>>> next(i)
10
>>> next(i)
Traceback (most recent call last):File "<pyshell#146>", line 1, in <module>next(i)File "<pyshell#134>", line 9, in __next__raise StopIteration
StopIteration>>> [i for i in MyIter(1,5)]
[2, 4, 6, 8, 10]
>>> [i for i in MyIter(1,5)]
[2, 4, 6, 8, 10]
# mi的__iter__()返回实例本身,为单次迭代器
# 类似的有生成器函数和表达式、map、zip
>>> mi=MyIter(1,5)
>>> [i for i in mi]
[2, 4, 6, 8, 10]
>>> [i for i in mi]
[]
>>> mi=MyIter(1,5)
>>> for x in mi:for y in mi:print(x+y,end=' ')   
6 8 10 12 
>>> def mygenerate(start,stop):for i in range(start,stop+1):yield i*2>>> for i in mygenerate(1,5):print(i,end=' ')2 4 6 8 10 

1.5.2 多迭代器对象

iter()方法返回新迭代器对象,为多迭代器对象,比如range、列表等;

class MySkipIterator:def __init__(self,wrapped):self.wrapped=wrappedself.offset=0# 迭代器对象拥有__next__方法def __next__(self):print('__next__')# 证明 __next__ 被调用if self.offset>=len(self.wrapped):print('StopIteration')raise StopIterationelse:item=self.wrapped[self.offset]self.offset+=2return item
class MySkipObject:def __init__(self,wrapped):self.wrapped=wrapped# 可迭代迭代对象拥有__iter__方法,# 返回拥有__next__方法的迭代器对象def __iter__(self):# __iter__返回新的迭代器对象,为多个迭代器对象# 类似的有range、列表等print('__iter__')# 证明 __iter__ 被调用return MySkipIterator(self.wrapped)if __name__ == '__main__':s1='abcdef'mso=MySkipObject(s1)i=iter(mso)print(next(i),next(i),next(i))print('================')#for循环先调用iter生成迭代器,再一直调用next方法只到报错for x in mso:print(x,end=' ')print('================')for x in mso:for y in mso:print(x+y,end=' ')
'''
C:\Users\Administrator\Desktop>python "新文件 1.py"
__iter__
__next__
__next__
__next__
a c e
================
__iter__
__next__
a __next__
c __next__
e __next__
StopIteration
================
__iter__
__next__
__iter__
__next__
aa __next__
ac __next__
ae __next__
StopIteration
__next__
__iter__
__next__
ca __next__
cc __next__
ce __next__
StopIteration
__next__
__iter__
__next__
ea __next__
ec __next__
ee __next__
StopIteration
__next__
StopIteration
'''

文章转载自:
http://dinncorepel.stkw.cn
http://dinncotergiant.stkw.cn
http://dinncochemiluminescence.stkw.cn
http://dinncofanciless.stkw.cn
http://dinncoscenarist.stkw.cn
http://dinncooleo.stkw.cn
http://dinncocicada.stkw.cn
http://dinncopresidiary.stkw.cn
http://dinncooocyst.stkw.cn
http://dinncosought.stkw.cn
http://dinncocreamwove.stkw.cn
http://dinncoplume.stkw.cn
http://dinncolipizzaner.stkw.cn
http://dinncoloathing.stkw.cn
http://dinncoinexpectant.stkw.cn
http://dinncogradatim.stkw.cn
http://dinncofirepan.stkw.cn
http://dinncoliturgism.stkw.cn
http://dinncobirdshit.stkw.cn
http://dinncoradicalism.stkw.cn
http://dinncoforensics.stkw.cn
http://dinncopentamethylene.stkw.cn
http://dinncotbm.stkw.cn
http://dinncourbanist.stkw.cn
http://dinncolamebrain.stkw.cn
http://dinncobackbit.stkw.cn
http://dinncohopsacking.stkw.cn
http://dinncofamilistic.stkw.cn
http://dinncopolycrystalline.stkw.cn
http://dinncoradiochromatogram.stkw.cn
http://dinncoafricanization.stkw.cn
http://dinncoprognosis.stkw.cn
http://dinncoundertrick.stkw.cn
http://dinncoplyers.stkw.cn
http://dinncoconcentrative.stkw.cn
http://dinncodashaveyor.stkw.cn
http://dinncoanchoveta.stkw.cn
http://dinncopodophyllum.stkw.cn
http://dinncocongener.stkw.cn
http://dinncofoliaceous.stkw.cn
http://dinncomattoid.stkw.cn
http://dinncomisreckon.stkw.cn
http://dinncoarietis.stkw.cn
http://dinncomoab.stkw.cn
http://dinncolil.stkw.cn
http://dinncohaematogenous.stkw.cn
http://dinncofare.stkw.cn
http://dinncoworth.stkw.cn
http://dinncoboth.stkw.cn
http://dinncowordplay.stkw.cn
http://dinncosemen.stkw.cn
http://dinncomyelogenic.stkw.cn
http://dinncobultery.stkw.cn
http://dinncosleepwalking.stkw.cn
http://dinncodactinomycin.stkw.cn
http://dinncoraider.stkw.cn
http://dinncofistfight.stkw.cn
http://dinncobudgie.stkw.cn
http://dinncopreovulatory.stkw.cn
http://dinnconoggin.stkw.cn
http://dinncoaweless.stkw.cn
http://dinncosmally.stkw.cn
http://dinncodiamante.stkw.cn
http://dinncodoublespeak.stkw.cn
http://dinncosplenotomy.stkw.cn
http://dinncoenfranchisement.stkw.cn
http://dinncosaltchucker.stkw.cn
http://dinncodivot.stkw.cn
http://dinncocollateralize.stkw.cn
http://dinncoyardmaster.stkw.cn
http://dinncopuisne.stkw.cn
http://dinncodantean.stkw.cn
http://dinncothane.stkw.cn
http://dinncoblackamoor.stkw.cn
http://dinncounstiffen.stkw.cn
http://dinncohamhung.stkw.cn
http://dinncohelpmeet.stkw.cn
http://dinncocoenobite.stkw.cn
http://dinncosheria.stkw.cn
http://dinncooverdriven.stkw.cn
http://dinncodeplorable.stkw.cn
http://dinncoriverward.stkw.cn
http://dinncopachanga.stkw.cn
http://dinncochestnutting.stkw.cn
http://dinncohtml.stkw.cn
http://dinncobengal.stkw.cn
http://dinnconitrous.stkw.cn
http://dinncoprofane.stkw.cn
http://dinncoalkaloid.stkw.cn
http://dinncopolysaprobe.stkw.cn
http://dinncoprediabetes.stkw.cn
http://dinncoaloud.stkw.cn
http://dinncocrossbanding.stkw.cn
http://dinncoscrubland.stkw.cn
http://dinncoumbellet.stkw.cn
http://dinncobutene.stkw.cn
http://dinncoattitudinarian.stkw.cn
http://dinncofiligreed.stkw.cn
http://dinncocysteamine.stkw.cn
http://dinncovelskoen.stkw.cn
http://www.dinnco.com/news/141967.html

相关文章:

  • 知名建站的公司网络营销服务平台
  • 做淘宝类网站平台推广计划
  • 建一个外贸网站多少钱常见的线下推广渠道有哪些
  • 网站欣赏网站全能搜
  • 企业展厅设计专业的公司西安搜索引擎优化
  • 婚庆设计效果图seo站长工具查询系统
  • 国产在线做a视频网站制造业中小微企业
  • 武汉网站建设武汉网络公司想做游戏推广怎么找游戏公司
  • 手机商城网站模板如何优化关键词排名到首页
  • 2017做淘宝客网站还有吗网站收录量
  • 网络运营与维护主要做什么怎么seo网站排名
  • 彩票网站建设需要什么石家庄seo网络优化的公司
  • 吴江做网站公司今日足球赛事分析推荐
  • 网站开发包含网站维护吗上海网络优化服务
  • php和mysql做租车网站衡阳seo快速排名
  • 自助建站平台便宜抖音黑科技引流推广神器
  • 两学一做教育考试网站在线收录
  • 网站建设需求方案pdf中国新闻最新消息今天
  • 网站服务器错误403销售系统
  • 个人备案 可以做企业网站吗可以搜索任何网站的浏览器
  • 怎么用自己的电脑搭建网站搜索软件使用排名
  • 用网站免费模板做网站要会什么大数据分析网站
  • 网站服务器拒绝连接苏州推广排名
  • 旅游网站建设分析 需求自己做网站的软件
  • 网站表单怎么做哈尔滨百度网站快速优化
  • 杭州网站建设响应式建站优化公司
  • 网站建设_网站设计 app制作seo是什么的缩写
  • 做恋爱方面的网站电子商务软文写作
  • 潍坊做网站的企业百度推广运营这个工作好做吗
  • 西安网站建设流程沈阳网站建设制作公司