面向对象的大量参数自动化

2024-09-29 19:27:37 发布

您现在位置:Python中文网/ 问答频道 /正文

class Client():
    def __init__(self, nome, morada, zona, pais):
        self.Nome = nome
        self.Morada = morada
        self.Zona = zona
        self.Pais = pais
        ...

    def save(self):
         ins = db.insert('tdemo', nome = self.Nome, morada = self.Morada, zona = self.Zona, pais = self.Pais)   
         if not ins:
             return False

if form.validate():
     client = Client(form.Nome.data, form.Morada.data, form.Zona.data, form.Pais.data)
     client.save()

这段代码可以很好地处理4个参数,但实际情况中有大量参数(>;15个参数)。有没有人想到不用定义每个参数就可以实现自动化?你知道吗


Tags: selfformclientdata参数savedefnome
2条回答

可以对任意数量的参数扩展以下方法:

parameters = {
    'nome': form.Nome.data,
    'morada': form.Morada.data,
    'zona': form.Zona.data,
    'pais': form.Pais.data,
}
client = Client(**parameters)

这应该使代码保持合理,同时仍然明确您传递给Client的内容。你知道吗

传递整个表单:

class Client():
    def __init__(self, form):
        self.Nome = form.nome.data
        self.Morada = form.morada.data
        self.Zona = form.zona.data
        self.Pais = form.pais.data

client = Client(form)

相关问题 更多 >

    热门问题