【发布时间】:2018-09-29 05:44:38
【问题描述】:
我有一点Java背景,经常使用static变量和方法。我是 python 新手,正在学习使用 @classmethod 作为静态方法。
这是代码,
import redis
class GetClients:
r = None
@classmethod
def connect_r(cls, host, port, db):
r = redis.StrictRedis(host=host, port=port, db=db)
@classmethod
def get_clients(cls, clients_key):
return r.smembers(clients_key)
我的代码首先创建一个变量r,然后在classmethod 中将其分配给redis 连接r = redis.StrictRedis(host=host, port=port, db=db)
在下一个方法get_clients 中,我使用r 的值来调用它的函数。但我不断收到以下错误
NameError: name 'r' 未定义
这是我使用课程的方式,
clients = GetClients()
clients.connect_r("localhost", 6379, 0)
allc = clients.get_clients("clients")
谁能解释一下为什么我无法在第二种方法中访问r?
【问题讨论】:
标签: python class class-method