国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > 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视频教程!!

关注

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

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

我把校花嘴巴当套子的小说| 女性左腿又开腿肚子视频大全| 闺蜜说他老公特别大怎么回复| 双男主GAI免费观看网站| 人狗大战6免费观看正版| 苏苏的骚浪短笔趣阁小说 | 情满四合院大结局| C2000论坛| 老师我好爽再深一点老师好涨 | 女人尝试到更粗大的心理变化| 色翁荡熄第10章| 134VCC影院免费观看| 公媳欢情沈曼最新章节更新| 成全影视大全免费追剧大全| GAI视频免费播放器| 樱花视频在线观看免费高清电视剧| 父女一起到达巅峰的小说| 夹心玩具BY笔趣阁| 燕子课文| 夫妻二人世界免费看第一集 | 女生给男生吃小头头| 续父开续女包小芳的小说破| 《交换做爰》在线观看| 女性扒开大腿内侧小肚子痒 | 美臀| 美女的胸怀| 露胸的衣服| 孤男寡女免费观看高清电视剧狂飙 | 吻戏韩剧| 《尼姑庵春梦》| 鸭子4| 爸爸汆肉的日常| 高压监狱2法国1时43分| 母与子免费观看大全电视剧邻居大..| 美国禁忌6 结局| 少妇高潮久久久久久| 人犬兽人高清版在线观看| 小花园按摩手法视频教程| 按在阳台上疯狂的进入| 半夜洗澡被老头添一夜| 天美麻花高清在线看电视剧