使用别名作为缩写(在Python中)是好/坏的风格?

时间:2015-11-09 12:35:54

标签: python coding-style

是否有使用缩写变量作为实例和/或类变量的编码标准(在python中)?

Python示例

问题不一定是python的问题,其他语言的答案也会很有趣,但我对pythonic或一般的方法特别感兴趣。

try:
    x = float(raw_input("Please enter a number: "))
except ValueError:
    print "That was no valid number."
print "you entered " + str(x)    

import A class Foo: def __init__(self): self.queue = A.Very.Long.List.Of.Names.queue 仅用作self.queue的缩写,并在Foo中多次使用。这肯定会使代码更短,更容易读取,但不一定更容易理解,因为有关结构的信息丢失了。

类似问题

有一个类似的问题被问到Is it bad style to reassign long variables as a local abbreviation?但是我认为这个问题有权被问为局部变量的答案,而实例变量可能会有所不同。

2 个答案:

答案 0 :(得分:0)

你可以做到

from A.Very.Long.List.Of.Names import queue
class Foo:
    def __init__(self):
        self.queue = queue

从性能的角度来看,这种方法更好,因为它不必承担 getattribute getattr

的开销。

您也可以在程序的全局部分声明相同内容,例如

import A
longVar = A.Very.Long.List.Of.Names.queue
class Foo:
    def __init__(self):
        self.queue = longvar

这使您可以避免使用python import语句以及在整个程序中使用longVar。

答案 1 :(得分:0)

据我所知,没有任何标准可以禁止或阻止您对类名别名。你是否应该主要是基于背景的观点和意见。

一般来说,如果一个类名太长,我首先看看我是否可以重构它。如果我不能,我将使用别名,如果它显着提高可读性。我不确定您对“结构信息”丢失的担忧源于何处 - 任何即使是稍微坚定的程序员都能识别出别名。

有时很容易过度思考这些事情。