Python中的Unicode转义注释
我制作了一个Java程序,它使用unicode转义字符来打断多行注释并隐藏一些功能。下面的程序打印“你好,残酷的世界”。我想知道这是否可以在Python(任何版本)中实现。如果不可能,如何在语言中防止这种情况Python中的Unicode转义注释,python,unicode,escaping,comments,lexical-analysis,Python,Unicode,Escaping,Comments,Lexical Analysis,我制作了一个Java程序,它使用unicode转义字符来打断多行注释并隐藏一些功能。下面的程序打印“你好,残酷的世界”。我想知道这是否可以在Python(任何版本)中实现。如果不可能,如何在语言中防止这种情况 public static void main(String[] args) { print("Hello"); /* * \u002A\u002F\u0070\u0072\u0069\u006E\u0074\u0028\u0022\u0043\u0072\u0
public static void main(String[] args) {
print("Hello");
/*
* \u002A\u002F\u0070\u0072\u0069\u006E\u0074\u0028\u0022\u0043\u0072\u0075\u0065\u006C\u0022\u0029\u003B\u002F\u002A
*/
print("World");
}
private static void print(String s){
System.out.print(s + " ");
}
请注意,unicode是转义字符串*/print(“craul”)/*代码>
到目前为止,我的尝试是徒劳的
test = False
#\u0023test = True
'''
\u0027\u0027\u0027
test = True
\u0027\u0027\u0027
'''
print(test)
PythonLexer只处理Unicode字符串文本中的Unicode转义(u'
,在Python2中,'
,在Python3中),因此这种方法是不可能的
如果您只尝试简单的空格,\u0020
,python会抛出:
SyntaxError: unexpected character after line continuation character
这是因为在字符串文字之外,\
字符主要用于将一条长线拆分为几条较短的线:
spam = foo + bar + baz + ham + \
eggs + ham + spam + spam + \
spam + sausages + spam
在字符串之外,\
之后唯一允许的字符是换行符。Python lexer只处理Unicode字符串文本中的Unicode转义(u'
在Python 2中,'
在Python 3中),因此这种方法是不可能的
如果您只尝试简单的空格,\u0020
,python会抛出:
SyntaxError: unexpected character after line continuation character
这是因为在字符串文字之外,\
字符主要用于将一条长线拆分为几条较短的线:
spam = foo + bar + baz + ham + \
eggs + ham + spam + spam + \
spam + sausages + spam
在字符串之外,\
之后唯一允许的字符是换行符。永远不要这样做。。。我同意这是多么可怕的事情。我正在寻找程序分析工具中的边缘案例…我不认为你能在python中做到这一点。。。谢天谢地,如果您正在用Python进行程序分析,我想您最糟糕的噩梦应该是“exec”函数性。按照您的想法,可以执行一些模糊代码。i、 e.exec(“\u0074\u0065\u0073\u0074\u0020\u003d\u0020\u0054\u0072\u0075\u0065”)
@Cilyan是的,但您仍然无法将其放在注释中(或三重引号字符串中),永远不要这样做。。。我同意这是多么可怕的事情。我正在寻找程序分析工具中的边缘案例…我不认为你能在python中做到这一点。。。谢天谢地,如果您正在用Python进行程序分析,我想您最糟糕的噩梦应该是“exec”函数性。按照您的想法,可以执行一些模糊代码。i、 e.exec(“\u0074\u0065\u0073\u0074\u0020\u003d\u0020\u0054\u0072\u0075\u0065”)
@Cilyan是的,但您仍然无法将其放在注释中(或三重引号字符串中)