Python调用某个类,传**kwargs参数时,字符串的形式传入方法

在调用python的某些类时,事先并不确定参数的,需要自行拼接字符串。解决办法如下,

参考:

https://stackoverflow.com/questions/48838289/pass-string-parameter-into-class-function-pythonhttps://stackoverflow.com/questions/48838289/pass-string-parameter-into-class-function-python

 给出我的代码示例:

# 生成kwargs字符串,比如 host="1", port="2", user="3", password="4", database="5", schema="6", table="7", fileName="8"

kwagrsStr = """host="1", port="2", user="3", password="4", database="5", schema="6", table="7", fileName="8" """


class dataConnector():
    def __init__(self, **kwargs):
        # 主机
        self.host = 'host' in kwargs and kwargs['host'] or None
        # 端口
        self.port = 'port' in kwargs and kwargs['port'] or None
        # 用户名
        self.user = 'user' in kwargs and kwargs['user'] or None
        # 密码
        self.password = 'password' in kwargs and kwargs['password'] or None
        # 数据库
        self.database = 'database' in kwargs and kwargs['database'] or None
        # schema
        self.schema = 'schema' in kwargs and kwargs['schema'] or None
        # table
        self.table = 'table' in kwargs and kwargs['table'] or None
        # fileName
        self.fileName = 'fileName' in kwargs and kwargs['fileName'] or None

    def run(self):
        print(self.host, self.port, self.user, self.password, self.database, self.schema, self.table, self.fileName)


# 引用某个类
dbObject = dataConnector(**eval("dict({})".format(kwagrsStr)))
dbObject.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值