Python 在CherryPy中,是否可以别名文件夹名称?
我在用樱桃糖。我有一个名为“zh cn”的文件夹——这意味着我使用的是中国大陆版本的书面中文-简体中文 这是我的密码。注意我是如何使用下划线的吗?这很有效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
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())