代码之家  ›  专栏  ›  技术社区  ›  Ben Holland Hossam Ali

Python中的Unicode转义注释

  •  0
  • Ben Holland Hossam Ali  · 技术社区  · 10 年前

    我制作了一个Java程序,它使用unicode转义字符来打断多行注释并隐藏一些功能。下面的程序打印“你好残酷世界”。我想知道这是否可以在Python(任何版本)中实现。如果不可能,如何在语言中防止这种情况?

    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("Cruel");/*

    我迄今为止的徒劳尝试。。。

    test = False
    
    #\u0023test = True
    
    '''
    \u0027\u0027\u0027
    test = True 
    \u0027\u0027\u0027
    '''
    
    print(test)
    
    1 回复  |  直到 10 年前
        1
  •  5
  •   Antti Haapala -- Слава Україні    10 年前

    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 
    

    外部字符串,后面唯一允许的字符 \ 是换行符。