Skip to main content
 首页 » 编程设计

python之如何重构 python 中的 switch case 语句

2025年05月04日10lovecherry

此代码是 Google 应用引擎网络应用程序的一部分。 blow代码有什么重构思路吗?

def post(self): 
    user = User.all().filter("id =",self.request.get('id')).get() 
    for arg in self.request.arguments(): 
        if arg == 'name': 
            user.name = self.request.get(arg) 
        elif arg == 'sex': 
            user.sex = self.request.get(arg) 
        elif arg == 'age': 
            user.age = self.request.get(arg) 
        elif arg == 'interest': 
            user.interest = self.request.get(arg) 
        elif arg == 'location': 
            user.location = self.request.get(arg) 
        elif arg == 'latitude': 
            user.latitude = self.request.get(arg) 
        elif arg == 'longitude': 
            user.longitude = self.request.get(arg) 
    user.put() 
    response_out_update(self, "true") 

请您参考如下方法:

valid_args = set(('name', 'sex', 'age', 'interest', 'location', 'latitude', 'longitude')) 
 
for arg in self.request.arguments(): 
    if arg in valid_args: 
        setattr(user, arg, self.request.get(arg)) 

您可能不希望应用程序用户仅通过制作适当的 POST 请求就能够修改用户对象的某些属性。即使此处理程序仅限于管理员使用并防止 CSRF,赋予它不需要的功能也没有明显的好处,因此最好的情况是永远不会使用,最坏的情况是有人会想出如何滥用。