python函数名中允许的字符

Allowed characters in Python function names

除了字母、数字和下划线之外,python函数名中还有其他允许的字符吗?如果是,它们是什么?


不在python 2.x中。来自文档:

1
2
3
4
5
identifier ::=  (letter|"_") (letter | digit |"_")*
letter     ::=  lowercase | uppercase
lowercase  ::= "a"..."z"
uppercase  ::= "A"..."Z"
digit      ::= "0"..."9"

在python 3中,它被扩展:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
identifier   ::=  xid_start xid_continue*
id_start     ::=  <all characters in general categories Lu, Ll, Lt, Lm, Lo, Nl,
                   the underscore, and characters with the Other_ID_Start property>
id_continue  ::=  <all characters in id_start, plus characters in the categories
                   Mn, Mc, Nd, Pc and others with the Other_ID_Continue property>
xid_start    ::=  <all characters in id_start whose NFKC normalization
                   is in"id_start xid_continue*">
xid_continue ::=  <all characters in id_continue whose NFKC normalization
                   is in"id_continue*">

The Unicode category codes mentioned above stand for:

Lu - uppercase letters
Ll - lowercase letters
Lt - titlecase letters
Lm - modifier letters
Lo - other letters
Nl - letter numbers
Mn - nonspacing marks
Mc - spacing combining marks
Nd - decimal numbers
Pc - connector punctuations
Other_ID_Start - explicit list of characters in PropList.txt
                 to support backwards compatibility
Other_ID_Continue - likewise