pokeyboa 发表于 2020-4-10 09:55:55

关于子类的修改

写了个 连接db的类

class DBconnection(object):

      server = {
                        'host':' 10.1.11.111',
                        'port': '3306',
                        'passwd': 'abcde',
                        'user': 'root',
                        'dbname': 'test'
                }

      def __init__(self, server):
                self.host = server['host']
                self.port = server['port']
                self.password = server['password']
                self.user = server['user']
                self.dbname = server['dbname']

      def exec(self):
                大概拼成 两种方式:
               可以通过 ip登录 : mysql -uroot -h10.1.11.111 -P3306 -pabcde test



我写个子类 修改:
需要注意,主要是实现(上面init的server原本父类传了一个字典,但里面是5个k-v的,因为通过ip访问需要这五个,但我现在改成免密,我只需要2个k-v,那对于init,我需要怎么改?
python能不能实现,我传的字典,有就传,没有就自己定义为none,也不报错)

TJBEST 发表于 2020-4-10 10:13:46

dict.get(key, default=None)
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该设定值(默认参数为None)。
你可以判断啊
比如
temp =server.get('password',default=None)
if temp != None:
    self.password = temp
else:
    pass
如果有值则传值,否则返回None什么也不做。觉得我说的对,给个采纳吧

pokeyboa 发表于 2020-4-10 10:19:22

TJBEST 发表于 2020-4-10 10:13
dict.get(key, default=None)
key -- 字典中要查找的键。
default -- 如果指定键的值不存在时,返回该设 ...

看样子靠谱,但我这儿 有 三个,有简洁的方法吗?
我这儿库用户user和库名 dbname是必须传的!
其他三个 host、port、password这三个 需要用你这个方法分别判断三遍吗?还是有 统一的 一个包含的方式
比如 类似 in (host,port,password)这种感觉的。。
理解我说的意思吧{:5_109:}

TJBEST 发表于 2020-4-10 10:26:50

pokeyboa 发表于 2020-4-10 10:19
看样子靠谱,但我这儿 有 三个,有简洁的方法吗?
我这儿库用户user和库名 dbname是必须传的!
其 ...

这三个值你是有一个不传就三个都不传,还是有谁传谁?如果是一个不行这三个都不传,可用try语句,如果是谁没有谁不传,那只能一个一个判断

pokeyboa 发表于 2020-4-10 10:30:23

TJBEST 发表于 2020-4-10 10:26
这三个值你是有一个不传就三个都不传,还是有谁传谁?如果是一个不行这三个都不传,可用try语句,如果是 ...

也是哈!谢谢
页: [1]
查看完整版本: 关于子类的修改