Я создал класс и пытаюсь создать функцию, которая, по сути, будет действовать как двоичный оператор между двумя объектами этого класса. Функция, которую я пытался создать, называется «объединить».
Я знаю, что могу создать функцию вне класса, но я хочу, чтобы она была связана с классом.
Справочная информация (на самом деле не обязательно для ответа на вопрос) - класс моделирует математическую группу S4 и представляет собой некоторую практику с объектами и классами для меня. Моя следующая функция состояла в том, чтобы упростить элемент в его простейшее выражение в циклах, что, я уверен, я мог бы сделать, но я предпочел бы сначала отсортировать этот элемент.
Когда я создаю функцию с одним аргументом, она работает нормально - как показано в приведенном ниже коде, с функцией 'cycletype', которая работает, как и ожидалось.
class s4:
# Define an element of s4, elementlist is a nested list, which is a list of the cycles composing the element.
def __init__(self, elementlist):
self.elementlist = elementlist
# One simple function is to ascertain the cycletype of the element.
def cycletype(self):
cycles = []
for i in self.elementlist:
cycles.append(len(i))
return cycles
# Combining two elements using the group operation is the first function to define.
def combine(first, second):
for i in second:
first.append(i)
return first
double = s4([[1,2],[3,4]])
triple = s4([[1,2,3]])
print(combine(double,triple))
Я ожидал, что [[1,2], [3,4], [1,2,3]] будет напечатано, однако он показал ошибку NameError, не распознающую объединение.