Эй,
Мне трудно реализовать что-то, что не должно быть трудным. Я читал много постов, и до сих пор не могу понять это, хотя, вероятно, на него есть ответ, и я просто не понимаю ответ: /
Итак, у меня есть класс, определяющий файл алгоритма three_dpll.py в логике / и пару вспомогательных функций
class three_dpll(object):
...
def __extend__(self, symbol, value, mod):
""" __extend__(symbol, value) - extends the model
...
"""
def three_dpll(self, formula, symbols, mod):
""" three_dpll(formula, symbols, mod) - calculates 3-DPLL \n
NOTE: This algorithm should not be overwritten in any derived class!!"""
...
# find unit clause
curr_data = self.__find_unit_clause__(formula, mod)
current_symbol = curr_data[0]
current_symbol_set.add(current_symbol)
current_value = curr_data[1]
if current_symbol != None:
return three_dpll(formula, symbols - current_symbol_set,
self.__extend__(current_symbol, current_value, mod))
...
и логика, которая должна реализовывать алгоритм для определенной логики, где я мог бы переопределить определенные методы, например, из logics.three_dpll.py (или любой другой вспомогательной функции в этом отношении)
from three_dpll import three_dpll
class kleene_logic(three_dpll):
""" This is the definition of Kleene logic """
pass
и теперь вызываем его из функции в другом файле:
* * 1010
Я получаю ошибку:
in three_dpll
self.__extend__(current_symbol, current_value, mod)) TypeError: object.__new__() takes no parameters
Есть идеи, как это исправить?