我刚学 Python 2 两天,写一个简单连接 redis 的代码如下:
# -*- coding: utf-8 -*-
import sys
import configparser
import redis
class Redis:
config = '' # Refer to config.ini
redis_conn = '' # Refer to Instance of redis connection
def __init__(self):
self.config = configparser.ConfigParser()
self.config.read("config.ini")
try:
redis_host = self.config.get("redis", "host")
redis_port = self.config.get("redis", "port")
redis_db = self.config.getint("redis", "db")
self.redis_conn = redis.Redis(host=redis_host, port=redis_port, db=redis_db)
except Exception as e:
print("Unabled to connect Redis, Please check redis configuration.\n", e)
sys.exit()
# Read Redis Data
def get(self, name, key):
return self.redis_conn.hget(name, key)
# Save Redis Data
def set(self, name, key, value):
self.redis_conn.hset(name, key, value)
# Delete Redis Data
def evict(self, name, keys):
self.redis_conn.hdel(name, keys)
# Close Redis Connection
def close(self):
self.redis_conn.shutdown()
if __name__ == '__main__':
redis = Redis()
region = "users"
redis.set(region, 2, {'name':"Winter Lau",'age':1})
user = redis.get(region, 2)
user
在 PyCharm 中运行出错信息如下:
__init__() got an unexpected keyword argument 'host'
而同样的代码在 python 的命令行中执行是没错的。求助啊,哪里写错了!
问题找到了,是我的Redis类和redis模块的命名冲突了!
名字不要一样吧,或者单独弄一个自己模块你也有今天什么时候建Py2Cache项目,赶紧建吧
最好从第一行代码开始就上,不要等着都写差不多了才发布,来个记录直播
f ggg版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。