У меня есть эта функция вызова здесь:Где скрытый параметр?
import test_hosts
test_hosts.LocalTestHost(mst, port, local_ip, remote_if_mac, remote_if_ip, service_port)
и когда я запускаю его, интерпретатор выходит из строя, и говорит, что я передаю 6 параметров в функцию, которая принимает 7 параметров.
LocalTestHost
- класс, который его конструктор принимает параметр self
и шесть других: в результате получается в общей сложности 7 параметров. Это его декларация:
class LocalTestHost:
def __init__(self, mst, port, local_ip, remote_if_mac, remote_if_ip, service_port):
...
Я устал от этого кода часами, и я не могу найти проблему. Когда я запускаю это как есть, он терпит неудачу, потому что я пропускаю 6 параметров, которых слишком мало, если я вызову конструктор с добавленным параметром, чтобы увидеть, что я все еще могу считать, он говорит, что я пропускаю 8 параметров, что тоже многие.
Я пробовал вырезать и вставлять ваш пример в Python 2.5 и не могу воспроизвести его. Можете ли вы опубликовать более полный пример, который не подходит? – Nelson
Сначала вы должны создать минимальный тест, который воспроизводит проблему. Это должен быть файл sinlge, а конструктор должен иметь как можно меньше аргументов. – stepancheg
Несколько идей: 1) Вы уверены, что это аргументы, переданные __init__, о которых жалуется интерпретатор, а не какой-либо вызов в цепочке? 2) Вы каким-то образом/где-то сделали __init__ статическим или иным образом его модифицировали? 3) Испытывали ли вы определение __init __ (* args), а затем печатали аргументы, чтобы увидеть, какие параметры фактически переданы? – balpha