如何在Python关键字/变量名中使用单引号?

0 投票
2 回答
1236 浏览
提问于 2025-06-18 04:05

我想在变量名和关键字中使用单引号。我知道如何在变量值中使用单引号和双引号(比如 "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

函数名中的Unicode字符

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

不过这样访问变量就会变得很麻烦,而且我再次强调,我真的不推荐这样做。不过如果你真的想隐藏一些东西,这倒是一个不错的技巧(虽然这可能有争议)。

撰写回答