@Kirill-Gorelov
С ума с IT

Python свой модуль?

Парни, проблема.

Пишу класс, и хочу его использовать как модуль.
Но когда я его импортирую и вызываю, пишет ошибку, что не все параметры переданы. Я уже несколько вариантов перепробовал, но что-то не получается.

Вот мой класс:
import requests
class MainApi(object):
    server = 'http://127.0.0.1:8000'

    def __init__(self):
        pass

    def verifyUser(self, email, password):
        #тут параметры и тд
        r = requests.get(self.server+'/api/login/verifyuser/', params=req_params)
        return r.json()


Теперь я его импортирую
from mainapp.app_module.mainserver.api import MainApi


И вызываю
rez = MainApi.verifyUser(email,password)
            print(rez)


Выдает ошибку
verifyUser() missing 1 required positional argument: 'password'


Но если я сначала инициализирую класс, то все ок
m = MainApi
rez = m.verifyUser(email,password)
            print(rez)


Как мне сделать, что бы я вызывал свой класс так:
MainApi.verifyUser(email,password)
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Стоит научиться отличать классы от объектов, это базовые знания. Либо создайте объект своего класса прежде, чем обращаться к его методам

api = MainApi()
api.verifyUser(email, password)

либо сделайте метод verifyUser методом класса

class MainApi(object):
    server = 'http://127.0.0.1:8000'

    @classmethod
    def verifyUser(cls, email, password):
        #тут параметры и тд
        r = requests.get(cls.server + '/api/login/verifyuser/', params=req_params)
        return r.json()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы