Python 在CherryPy中,是否可以别名文件夹名称?

Python 在CherryPy中,是否可以别名文件夹名称?,python,localization,cherrypy,cjk,Python,Localization,Cherrypy,Cjk,我在用樱桃糖。我有一个名为“zh cn”的文件夹——这意味着我使用的是中国大陆版本的书面中文-简体中文 这是我的密码。注意我是如何使用下划线的吗?这很有效 class ChineseFlashcards: zh_cn = ChineseFlashcards_zh_cn() en = ChineseFlashcards_en() 我的问题是我宁愿使用连字符,因为我认为它“更正确”。但是,您不能像Python中那样使用连字符。这是不允许的。这会引发一个错误: class Chine

我在用樱桃糖。我有一个名为“zh cn”的文件夹——这意味着我使用的是中国大陆版本的书面中文-简体中文

这是我的密码。注意我是如何使用下划线的吗?这很有效

class ChineseFlashcards:
    zh_cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()
我的问题是我宁愿使用连字符,因为我认为它“更正确”。但是,您不能像Python中那样使用连字符。这是不允许的。这会引发一个错误:

class ChineseFlashcards:
    zh-cn = ChineseFlashcards_zh_cn()
    en = ChineseFlashcards_en()
我要寻找的是一种CherryPy属性,它将别名标识符。类似的事情(但这是不合法的)


有人对此有解决方案吗?

最简单的解决方案可能是用您自己的
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也将正常工作,任何未被识别的url都将通过
索引
,它将在自己的别名目录中查找。

解决方案1:如果您使用的是CherryPy 3.2或更高版本,只需将其称为“zh_cn”。看

解决方案2:可以使用
setattr
绑定非合法Python标识符的属性名称:

class ChineseFlashcards:
    en = ChineseFlashcards_en()

setattr(ChineseFlashcards, 'zh-cn', ChineseFlashcards_zh_cn())
class ChineseFlashcards:
    en = ChineseFlashcards_en()

setattr(ChineseFlashcards, 'zh-cn', ChineseFlashcards_zh_cn())