韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python基础教程 > Python为什么没有属性赋值的“with”语句?

Python为什么没有属性赋值的“with”语句?

头像

 Ly

2020-06-24 17:07:294780浏览 · 0收藏 · 0评论

python中为什么没有属性赋值的“with”语句?

Python有一个 'with' 语句,它封装了块的执行,在块的入口和出口调用代码。有些语言的结构是这样的:

with obj:
    a = 1               # equivalent to obj.a = 1
    total = total + 1   # obj.total = obj.total + 1

在Python中,这样的结构是不明确的。

其他语言,如ObjectPascal、Delphi和C++ 使用静态类型,因此可以毫不含糊地知道分配给什么成员。这是静态类型的要点 -- 编译器 总是 在编译时知道每个变量的作用域。

Python使用动态类型。事先不可能知道在运行时引用哪个属性。可以动态地在对象中添加或删除成员属性。这使得无法通过简单的阅读就知道引用的是什么属性:局部属性、全局属性还是成员属性?

例如,采用以下不完整的代码段:

def foo(a):
    with a:
        print(x)

该代码段假设 "a" 必须有一个名为 "x" 的成员属性。然而,Python中并没有告诉解释器这一点。假设 "a" 是整数,会发生什么?如果有一个名为 "x" 的全局变量,它是否会在with块中使用?如您所见,Python的动态特性使得这样的选择更加困难。

然而,Python 可以通过赋值轻松实现 "with" 和类似语言特性(减少代码量)的主要好处。代替:

function(args).mydict[index][index].a = 21
function(args).mydict[index][index].b = 42
function(args).mydict[index][index].c = 63

写成这样:

ref = function(args).mydict[index][index]
ref.a = 21
ref.b = 42
ref.c = 63

这也具有提高执行速度的副作用,因为Python在运行时解析名称绑定,而第二个版本只需要执行一次解析。

更多Python答疑内容,请关注Python视频教程!!

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

儿子双飞妈妈和女儿的小说| 双男主做酱酱酿酿视频大全真人版| 国产少女免费观看电视剧大全| 国产 欧美-区二区三区 | 《再来一次好吗》动漫| 家庭性史| 怎么骑桌角到失禁| 《湿点》未增减板相似| 军营里饱满的乳被揉捏玩弄| 妈妈装睡配合孩子阴阳调和| 美女两个球球抖动抓球球视频| 二人生猴子全程免费| 机械师2| 办公室刺激战场第二季在线观看| 特级牲交大片20分钟-春梦AV| 黄金网站APP免费| 婚前试爱在线观看| 九九在线观看免费播放大全电视剧| 《潮湿小内裤》在线观看| 蜜桃浏览器| 免费网站在线观看人数在哪省| 道具调教自慰颤抖呻吟AV| 电影《老公上班后》免费观看| 第-次和公翁做爰又大又粗| 小扫货几天没弄了这么多| 黑丝美女| 房东老头揉捏吃我奶头影片| WWW.77.GOVCN| 姐姐片多多免费高清电视剧| 《哺乳》电影完整版观看| 51成人免费A片毛片无码| 甜蜜惩罚~我是看守专用宠物| 两个老头把我添高潮了| 泰山与珍妮HD未删减| 粉嫩小洑喷潮抽搐无码免费视频| 可切换老司机模式浏览器| 女子赤身跳钢管舞视频| 第1章饱满的乳峰喷奶水动漫| 暴躁姐姐BGM国语版| 荒野激战2欧美版10大明星| 韩漫