使用(某些)Python 内置类型,是否可以引用我们声明的对象?通过“(某些)内置类型”,我想到了例如序列类型、映射类型或集合类型,显然不是数字类型。
我的意思是,无需自己创建类并添加此功能(无需创建子类)。
因此,类似于this下面示例中使用的关键字。
例如,对于“dict”Python 内置类型,如下所示:
a_dictionary = {
"key_1": "value_1",
"key_2": "value_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_1_value_2"
}
Run Code Online (Sandbox Code Playgroud)
甚至:
a_dictionary = {
"sub_dict_1": {
"key_1": "value_1_1",
"key_2": "value_1_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_1_1_value_1_2"
},
"sub_dict_2": {
"key_1": "value_2_1",
"key_2": "value_2_2",
"key_3": this["key_1"] + "_" + this["key_2"] # == "value_2_1_value_2_2"
}
}
Run Code Online (Sandbox Code Playgroud)
我读了 :
在python中进行函数链接时,有没有办法引用“当前”对象?
在 Python 中进行列表/字典理解时是否可以访问当前对象?
和其他一些,但它与我的问题开头描述的要求不符。
非常感谢你的帮助!
Python 没有提供通过文字或显示来引用正在构建的对象的方法*。您可以(ab)使用 Python 3.8 或更高版本中的赋值表达式来模拟:
a_dictionary = {
"key_1": (x := "value_1"),
"key_2": (y := "value_2"),
"key_3": x + "_" + y
}
Run Code Online (Sandbox Code Playgroud)
它需要提前进行一些计划,因为您不是直接引用键值,而是一个预定义的变量。请注意,在分配给 之后x和y仍然在范围内a_dictionary,所以这只是一个有问题的等价物
x = "value_1"
y = "value_2"
a_dictionary = {
"key_1": x,
"key_2": y,
"key_3": x + "_" + y
}
Run Code Online (Sandbox Code Playgroud)
自定义类确实更合适:
class Thing:
def __init__(self, v1, v2):
self.key_1 = v1
self.key_2 = v2
self.key_3 = v1 + "_" + v2
a_thing = Thing("value_1", "value_2")
Run Code Online (Sandbox Code Playgroud)
[1, x, y]和[int(x) for x in foo]。| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |