Python记录中的省略引用

时间:2015-07-13 07:43:25

标签: python records recordtype

Python中是否允许使用椭圆引用?

在椭圆引用中,该字段已命名,但只要结果引用在引用环境中明确无误,就可以省略任何或所有封闭记录名称。

你能给我一些简短的例子吗。谢谢。

1 个答案:

答案 0 :(得分:1)

不,你不能对Python中的普通数据对象进行椭圆引用,因为根据the Zen of Python,“明确比隐含更好”。

但是,您可以执行

之类的操作
from mymodule import Myclass
thing = Myclass()

而不是

import mymodule
thing = mymodule.Myclass()

虽然椭圆引用可以使代码更简洁,但实际上它实际上会妨碍代码可读性,因为您需要弄清楚引用是简单名称还是缩写引用,并且在编写代码时必须防止意外地创建一个模棱两可的参考。此外,处理此类引用会使编译器或解释器的工作更加困难。因此,即使在允许使用椭圆引用的语言中,避免使用它们也是明智的 - 许多JavaScript程序员出于这个原因避免使用with构造。

在Python中,我们实际上不需要椭圆引用,因为我们可以轻松地在深度结构化对象的任何级别绑定名称。

例如,而不是

a = some.deeply.structured.thing[5]['items'][0]
b = some.deeply.structured.thing[5]['items'][7]
c = some.deeply.structured.thing[5]['items'][11]

我们可以做到

ref = some.deeply.structured.thing[5]['items']
a = ref[0]
b = ref[7]
c = ref[11]

有关Python中名称绑定的优秀文章,请参阅SO退伍军人Ned Batchelder的Facts and myths about Python names and values