TypeError: run () missing 1 обязательный позиционный аргумент: 'self' [duplicate]

Ваше предположение о доступе к заголовку Referer с помощью javascript невозможно. Подобно заголовку User-Agent в http, referer и т. Д., Javascript не может быть доступен. Значения этих заголовков подаются браузером. Что вы можете сделать, это сложная работа, если вам нужно это сделать.

76
задан DominicM 11 June 2014 в 21:31
поделиться

4 ответа

Вам нужно создать экземпляр класса здесь.

Использовать

p = Pump()
p.getPumps()

Маленький пример -

>>> class TestClass:
        def __init__(self):
            print "in init"
        def testFunc(self):
            print "in Test Func"


>>> testInstance = TestClass()
in init
>>> testInstance.testFunc()
in Test Func
111
ответ дан Sukrit Kalra 17 August 2018 в 10:56
поделиться
  • 1
    ABC не является хорошим примером, поскольку это означает абстрактный базовый класс. – Daniel Roseman 8 July 2013 в 20:25
  • 2
    Пробовал это раньше, но отсутствовал & quot; () ". Это новое в python 3.x? – DominicM 8 July 2013 в 20:25
  • 3
    К сожалению. Не понял. Фиксация. Сожалею. – Sukrit Kalra 8 July 2013 в 20:25
  • 4
    @ DominicM: Нет, это всегда было. – Sukrit Kalra 8 July 2013 в 20:25
  • 5
    Yup, оглядываясь на учебники, которые я последовал, мой мозг, должно быть, только что затушил скобки :) – DominicM 8 July 2013 в 20:28

У меня была аналогичная проблема. Кусок моего кода выглядел так:

class player(object):
    def update(self):
        if self.score == game.level:
            game.level_up()

class game(object):
    def level_up(self):
        self.level += 1

Он также дал мне эту ошибку об отсутствии self. Я решил это, набрав game.level_up(game) вместо game.level_up().

Он тоже должен работать для вас.

-1
ответ дан akshat 17 August 2018 в 10:56
поделиться

Вы также можете получить эту ошибку, преждевременно принимая рекомендации PyCharm, чтобы аннотировать метод @staticmethod. Удалить аннотацию.

1
ответ дан gherson 17 August 2018 в 10:56
поделиться

Сначала вам необходимо инициализировать его:

p = Pump().getPumps()
28
ответ дан JBernardo 17 August 2018 в 10:56
поделиться
  • 1
    Простота часто недооценивается. – theeastcoastwest 10 October 2016 в 14:13
  • 2
    Это сделает p равным методу getPumps (), в то время как это будет работать, p не будет «использоваться» как переменная для класса Pump (). Это не очень хорошая практика, потому что она создает бесполезную переменную. Если единственная цель - запустить функцию getPumps, тогда она будет работать только с запущенным Pump (). GetPumps () вместо создания переменной для этой функции. – Ashmoreinc 13 June 2017 в 18:43
Другие вопросы по тегам:

Похожие вопросы: