python37是什么_每天学一点python 37---杂

了解完了描述器,我们终于可以向super进发了,不过在此之前先休息几天

python已经更新到3.7了,但是我们还是说说3.6

看了下官方说明,3.6多了一些比较奇怪的特性,比如

a=100_00_11_000

是不是很奇怪,说是增加了可读性,如果打印这个a,会得到什么

print(a)

>>>

1000011000

好吧,有点无聊...

还有这种表达式,反向增加可读性..

print('hello,your number is {:_}'.format(227389472394793247))

>>>

hello,your number is 227_389_472_394_793_247

可以看起来清晰一点,不过我不觉得我会用到...

我们刚刚讨论过的描述器又多了一个方法

set_name

之前我们是这样去触发描述器

class a:

def __get__(self, instance, owner):

print('world')

def __set__(self, instance, value):

print('hello')

class b:

field = a()

b().field

b().field=5

>>>

world

hello

现在再定义field=a()的时候,会触发set_name

class a:

def __get__(self, instance, owner):

print('world')

def __set__(self, instance, value):

print('hello')

def __set_name__(self, owner, name):

print('nihao')

print(self,owner,name)

print(type(name))

class b:

field = a()

b().field

b().field=5

>>>

nihao

<__main__.a object at> field

world

hello

可以看到定义的属性field名字被传了进来,是一个字符串。

注意是在定义的时候触发的,不是在实例化描述器对象时候触发的

a()

print('没有输出')

>>>

没有输出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值