Allowed characters in Python function names

前端 未结 1 1878
一整个雨季
一整个雨季 2020-12-17 14:37

Are there any other allowed characters in Python function names except alphabetical characters, numbers, and underscores? If yes, what are they?

相关标签:
1条回答
  • 2020-12-17 14:59

    In Python 3 many characters are allowed:

    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
    

    The complete list of every character can be found on Unicode.org.


    In Python 2.x it was limited to just letters, numbers, and underscore. From the docs:

    identifier ::=  (letter|"_") (letter | digit | "_")*
    letter     ::=  lowercase | uppercase
    lowercase  ::=  "a"..."z"
    uppercase  ::=  "A"..."Z"
    digit      ::=  "0"..."9"
    
    0 讨论(0)
提交回复
热议问题