Могу ли я на самом деле использовать функции другого класса в качестве параметра и атрибута для экземпляра / объекта класса?
Я заметил, что если я делаю что-то подобное, есть много странностей (обратите внимание, что я использую лабораторию Jupyter) :
class ObjectClass:
#A class; I will insert a function into generalMethod
def __init__(self, generalMethod):
self.generalMethod = generalMethod
class GeneralMethods():
#Two different methods that I want to call
def method1(self):
add(2)
def method2(self):
print("Hey now, you're an all-star, get your game on, go play" )
return "Hey, I can return stuff, at least!",2
def add(input):
#A simple function that adds 1 to input
print(1 + input)
#Creating two objects with different methods as inputs from GeneralMethods
gm = GeneralMethods()
object1 = ObjectClass(gm.method1())
object2 = ObjectClass(gm.method2())
#Attempting to call anything from generalMethod; a getter method does the same
object1.generalMethod
object2.generalMethod
gm.method1()
и gm.method2()
делает все внутри него, даже , когда я просто объявляю его как параметр объекта / экземпляра!
Но anyObject.generalMethod
ничего не делает кроме возвращает то, что находится в возврате, когда я его вызываю, и если там есть функция, она возвращает None
.
Так могу ли я фактически вызывает функцию из атрибута, и она работает так же, как gm.method1 () при вызове ее из атрибута (anyObjectIChoose.generalMethod
).