如何在Python关键字/变量名中使用单引号?
我想在变量名和关键字中使用单引号。我知道如何在变量值中使用单引号和双引号(比如 "5'_Exon_Annotation"),或者用反斜杠来转义单引号。但我不太确定如何在变量名或关键字中做到这一点。下面是我想给列名和需要单引号的变量赋值的例子。
5'co-ordinate = "something"
gene_df = gene_df.assign(gene_position = gene_pos,
5'_co-ordinate = bkpt1_list[1],
3'_co-ordinate = bkpt2_list[1])
首先,这在Python中可能吗?我找不到相关的帖子。
相关问题:
- 暂无相关问题
2 个回答
1
这里是Python标识符可以使用的字符。你可能会发现一些看起来像撇号的字符,但它们并不是常见的那种。
顺便说一下,我不建议偏离ASCII字符表。如果某种语言本身支持这些字符,并且编辑器提供了帮助来写这些字符,那是可以的(比如Julia),但对于Python来说,这可能会让其他人感到困惑。
https://docs.python.org/3/reference/lexical_analysis.html#identifiers
这里有一个有效的Python代码示例,使用了一种引号作为函数名(你可以复制粘贴这个代码,但在macOS的Safari浏览器中,单引号可能不会显示,不过在我的终端截图中可以看到它):
In [1]: def f֜(x): return 2*x
In [2]: f֜(3)
Out[2]: 6
2
虽然我并不推荐这样做,但确实可以通过 setattr()
来使用各种字符作为类的属性,像这样:
class Test:
def __init__(self):
setattr(self, 'this variable has ""', 1)
test = Test()
print(getattr(test, 'this variable has ""'))
# test.this variable has "" does NOT work
不过我真的不建议这样做。这样设置属性的有趣之处在于,它会变得有点隐蔽,因为你只能通过 getattr()
来访问它。
如果你使用 globals()
或 locals()
,也可以用这种方式设置变量:
locals()['this variable has ""'] = 1 # or globals()
print(locals()['this variable has ""'])
# this variable has "" = 2 does NOT work
不过这样访问变量就会变得很麻烦,而且我再次强调,我真的不推荐这样做。不过如果你真的想隐藏一些东西,这倒是一个不错的技巧(虽然这可能有争议)。