在CherryPy中,是否可以为文件夹名称加上别名?

| 我正在使用CherryPy。我有一个名为“ zh-cn \”的文件夹-这意味着我使用的是中国大陆的书面中文版本-简体中文。 这是我的代码。注意我如何使用下划线?这可行。
class ChineseFlashcards:
    zh_cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()
我的问题是我宁愿使用连字符,因为我认为它“更正确”。但是,您可能无法在Python中使用连字符。这不被允许。这将引发错误:
class ChineseFlashcards:
    zh-cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()
我正在寻找的是某种CherryPy属性,该属性将使标识符成为别名。这样的事情(但这是不合法的)
class ChineseFlashcards:
    @cherrypy.expose(alias=[\'zh-cn\'])
    zh_cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()
有人对此有解决方案吗?     
已邀请:
        解决方案1:如果您使用的是CherryPy 3.2或更高版本,只需将其命名为“ zh_cn \”。请参阅http://docs.cherrypy.org/dev/concepts/dispatching.html#special-characters 解决方案2:您可以使用ѭ3来绑定不是合法的Python标识符的属性名称:
class ChineseFlashcards:
    en = ChineseFlashcards_en()

setattr(ChineseFlashcards, \'zh-cn\', ChineseFlashcards_zh_cn())
    
        最简单的解决方案可能是使用您自己的
index
方法进行处理。像这样的东西:
class ChineseFlashcards:
    zh_cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()

    aliases = {\'zh-cn\': zh_cn}

    @cherrypy.expose
    def index(self, locale, *args, **kwargs):
        if arg in self.aliases:
            return aliases[locale](*args, **kwargs)
en
仍将正常工作,
zh_cn
仍将正常工作,任何未被识别的网址都将经过ѭ5go,并且它将以自己的别名来查看。     

要回复问题请先登录注册