Я немного разбираюсь в 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: имя 'r' не определено
вот как я использую класс,
clients = GetClients()
clients.connect_r("localhost", 6379, 0)
allc = clients.get_clients("clients")
может кто-нибудь объяснить, пожалуйстапочему я не могу получить доступ к r
во втором методе?