python 输出文件a.txt中的字符个数不含回车_python语法:a,b,c=open(r'somefile.txt'),为什么不报错?...

我把代码改了一点点:

class SeqLike(object):

def __init__(self):

print('init a SeqLike')

return

def __iter__(self):

yield 1

yield 99

raise StopIteration

if __name__ == '__main__':

n = SeqLike()

a, b = n

print('a=',a)

print('b=',b)

输出是:

init a SeqLike

a= 1

b= 99

可以看出:

执行a, b = n,实际上是执行了__iter__函数。

改成a,b,c=n,就会报参数不够。

之前有一个类似问题:

class Fibs:

def __init__(self):

self.a=0

self.b=1

def __iter__(self):

return self

def __next__(self):

self.a,self.b=self.b,self.a+self.b

return self.a

f=Fibs()

it=iter(f)

i=next(it)

print(i)

归纳后的答案是:

=不是单纯的算右边,然后赋值给左边。

it = iter(f),在执行iter(f)时会去调用f的__iter__()方法,

r2.size=(3,4)在执行=这一步时,会调用r2的__setattr__()方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值