国产成人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视频教程!!

关注

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

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

鲁鲁射击免费播放电视剧全部| 暴躁妹妹CSGO直播| 中字《喝醉的丈夫被结城送回家》| 泳装热舞| 姐姐片多多免费高清电视剧| 蘑菇花园H5部分阅读目录大全| 老婆同意了交换男人心态| 《XL司令》第一季动漫免费播放| 小蜜桃免费观看高清电视剧| 王娟被老赵一夜干4次| 啵啵| 情满四合院剧情| 《一滴都不许漏》何泽城林荫 | 《金莲浮史》台湾绝版| 免费观看B站刺激战场2023| 丰年经继拇中文3的主要角色分析 温柔女教师在线观看电视剧大全 双飞娘俩国语版电视剧免费观看 东北娘们国语版免费播放 | 姐姐呀姐姐快停下是什么歌曲| 老公把舌头放进我B里搅拌| 窝窝影院在线观看免费播放电视剧| 《女仆教育》动漫第一季| 《漂亮的秘书HD》在线观看| 老师没戴套子C了我一天视频 | 《相濡以沫的夜晚》动漫免费全部| 欧美大妈LOGO大全及价格图| 我穿水K被同桌C出水了H漫画| 少女与狗2在线观看免费版高清| 半夜洗澡被老头添一夜| 王叔 我老公还在客厅| 美国禁忌2在线观看电视剧| 成品免费PPT网站入口| 共享女儿小诗1~10章的背景资..| 水蜜桃免费高清电视剧大全| 电视剧在线观看免费| 酒鬼酒股票| 日本《暴力强伦轩》| 日亚M码是日本的还是中国的| 宝贝把腿开大让我添添你视频| 《警花交换做爰》| 国外成品网站1688入口在哪| 宝贝今天可不可以不带小雨伞| 男生把小因因放到女生困里视频