如何为同一个 属性 设置多个名称

how to set multiple names for same property

在尝试为单个 属性.

设置多个名称时,我在 python2.7 中的行为有一个小问题
# test class

class Something():
    def __init__( self ):
        self._data_pack = 1.0

    @property
    def data_pack( self ):
        return self._data_pack
    @data_pack.setter
    def data_pack( self, value ):
        self._data_pack = value

    dataPack = data_pack


x = Something()

print( 'data_pack', x.data_pack  ) #>>> 1.0
print( 'dataPack', x.dataPack  ) #>>> 1.0

在 Python 3+

两个 return 正确值 20

x = Something()

#change value
x.data_pack = 20

# # both read correct value
print( 'data_pack', x.data_pack  ) #>>> 20
print( 'dataPack', x.dataPack  ) #>>> 20

在 Python 2

只有data_pack return的新值, 数据包损坏

x = Something()

#change value
x.data_pack = 20

# # only data_pack has correct value, dataPack is broken
print( 'data_pack', x.data_pack  ) #>>> 20
print( 'dataPack', x.dataPack  ) #>>> 1.0

有人可以提供一些方法来确保旧 python 的行为方式相同吗? 对源 class 进行最小更改,并且没有 'magic'(第 3 方)模块。

编辑: 添加 class 推导有帮助 感谢您的回复

class Something(object):
    def __init__( self ):
        self._data_pack = 1.0

    @property
    def data_pack( self ):
        return self._data_pack
    @data_pack.setter
    def data_pack( self, value ):
        self._data_pack = value
    dataPack = data_pack

添加class推导有助于解决问题 谢谢(@AKX 和@Aron_Atilla_Hegedus)

class 东西: >>>> class 东西(对象):

class Something(object):
    def __init__( self ):
        self._data_pack = 1.0

    @property
    def data_pack( self ):
        return self._data_pack
    @data_pack.setter
    def data_pack( self, value ):
        self._data_pack = value
    dataPack = data_pack