想了解python类名称中的有效字符的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python符合类的命名规范的相关问题,此外,我们还将为您介绍关于Excel工作表名称的有效字符、html
想了解python类名称中的有效字符的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于python符合类的命名规范的相关问题,此外,我们还将为您介绍关于Excel工作表名称的有效字符、html – 选项值中的有效字符、Java类名称中的有效字符、Objective-C中类名中的有效字符的新知识。
本文目录一览:python类名称中的有效字符(python符合类的命名规范)
我正在动态创建python类,我知道并非所有字符在此上下文中都是有效的。
我可以在类库中某处使用某种方法来清理随机文本字符串,以便将其用作类名吗?那个或者允许的字符列表将是一个很好的帮助。
关于与标识符名称冲突的补充:
就像在下面的答案中指出的@Ignacio一样,任何可以有效用作标识符的字符都是类名中的有效字符。您甚至可以毫无保留地将保留字用作类名。但是有一个陷阱。如果您确实使用保留字,则将无法像其他(非动态创建的)类一样使该类可访问(例如,通过执行globals()[my_class.__name__]= my_class
)。在这种情况下,保留字始终优先。
答案1
小编典典Python 3
Python语言参考,第2.3节,“标识符和关键字”
Python中标识符的语法基于Unicode标准附件UAX-31,其详细说明和更改如下所述;有关更多详细信息,另请参阅PEP 3131。
在ASCII范围(U + 0001..U + 007F)中,标识符的有效字符与Python
2.x中的相同:大写字母和小写字母A至Z,下划线_和(除第一个字符外),数字0到9。Python 3.0引入了ASCII范围之外的其他字符(请参阅PEP
3131)。对于这些字符,分类使用unicodedata模块中包含的Unicode字符数据库的版本。标识符的长度是无限的。情况很重要。
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 ::=
xid_start ::=
xid_continue ::=上面提到的Unicode类别代码代表:
- Lu-大写字母
- LL-小写字母
- LT-标题字母
- LM-修饰字母
- 罗-其他字母
- NL-字母数字
- Mn-非间距标记
- 麦克间距组合标记
- Nd-十进制数
- PC-连接器标点符号
- Other_ID_Start-PropList.txt中的显式字符列表,以支持向后兼容
- Other_ID_Continue-同样
解析时,所有标识符都转换为标准形式NFKC;标识符的比较基于NFKC。
可以在https://www.dcl.hpi.uni-
potsdam.de/home/loewis/table-3131.html上找到列出Unicode 4.1的所有有效标识符字符的非规范HTML文件。
Python 2
Python语言参考,第2.3节,“标识符和关键字”
标识符(也称为 名称 )由以下词汇定义描述:
identifier ::= (letter|"_") (letter | digit | "_")*letter ::= lowercase | uppercaselowercase ::= "a"..."z"uppercase ::= "A"..."Z"digit ::= "0"..."9"
标识符的长度是无限的。情况很重要。
Excel工作表名称的有效字符
在Java中,我们使用以下程序包以编程方式创建excel文档:
org.apache.poi.hssf
如果尝试设置工作表的名称(不是文件,而是内部Excel工作表),则在以下情况下会出现错误:
- 名称超过31个字符
- 名称包含以下任何字符:/ \ *?[]
但是,在创建具有以下工作表名称的文档后:
@#$%&()+〜`“’:;,。|
没有错误输出,并且在Java中一切正常。当您在Office 2003中打开excel文件时,它会给您一个错误,指出工作表名称无效,并将其重命名为“
Sheet 1”之类的通用名称。
我对我们正在使用的先前介绍的软件包了解不多,但看起来好像没有正确过滤无效的Excel工作表名称。是否知道如何过滤掉所有已知的无效字符?我很想简单地过滤掉所有非单词字符。
html – 选项值中的有效字符
我只是想知道可以包含哪些有效字符作为< option>的值.
即这是有效的吗?
最佳答案
是的,这完全有效. See the specification:它表示值的内容应该是CDATA,其中几乎所有内容都是有效的,并带有以下警告:
>用字符替换字符实体,
>忽略换行,
>用一个空格替换每个回车或标签.
Java类名称中的有效字符
如何解决Java类名称中的有效字符?
你几乎可以使用任何字符,包括大多数Unicode字符!确切的定义在Java语言规范的3.8:标识符一节中。
一个标识符是无限长序列的Java字母和爪哇位,其中第一个必须是一个爪哇字母。…
字母和数字可能来自整个Unicode字符集,…这允许程序员在使用其母语编写的程序中使用标识符。
标识符不能具有与关键字(§3.9),布尔文字(§3.10.3)或空文字(§3.10.7)相同的拼写(Unicode字符序列),否则会发生编译时错误。
但是,请参阅此问题以了解是否应该这样做。
解决方法
ava类名称中哪些字符有效?还有哪些其他规则管理Java类名称(例如,Java类名称不能以数字开头)?
Objective-C中类名中的有效字符
当然,字母,数字和下划线的基本命名约定都可以工作,但是我正在寻找一个特殊字符来避免命名冲突.
$符号似乎工作,但我找不到任何文档. language reference没有提到它.
任何其他?可以参考的任何“官方”文件?
解决方法
由于Apple为其编译器切换了不同的工具链,因此美元符号似乎保持向后兼容.我会避免在我的新代码中使用它,尤其是因为苹果公司不会将其作为功能进行广告宣传.
关于python类名称中的有效字符和python符合类的命名规范的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Excel工作表名称的有效字符、html – 选项值中的有效字符、Java类名称中的有效字符、Objective-C中类名中的有效字符等相关知识的信息别忘了在本站进行查找喔。
本文标签: