У меня проблема. Вы видите, что я хочу сделать то же самое, как это Java-код:Абстрактные методы как в Java
new Runnable() {
//run() is a method that you need to
//implement when you create any
//new instance of Runnable
public void run() {
//Code goes here
}
}
где Java есть вы реализовать абстрактные методы, как с Runnable. Дело в том, что я пытаюсь воспроизвести одно и то же в Python, передав аргумент в методе init класса, а затем сохраните этот метод как переменную в классе (self.method) , где я запускаю этот метод в какой-то момент позже в коде этого класса. Дело в том, должны быть приняты все аргументы метода при создании класса, не тогда, когда вызывается метод, который, когда я хочу передать аргументы:
class AbstractExample():
def __init__(self, method):
method #Run method
def exampleMethod(arg1,arg2):
print str(arg1) + "," + str(arg2)
AbstractExample(exampleMethod(5,7))
Выход: «5 , 7 ", и если я не передаю аргументы, когда класс создается, как указано выше, я получаю сообщение об ошибке. Мой вопрос в том, есть ли способ, которым я могу сделать Java-код выше по-другому?
1. Там часто мало смысла в репликации бессмысленные вещи Java в Python. 2. Вы отправляете результат вызова функции, а не самой функции, в 'AbstractExample'. 3. Можете ли вы сказать нам, какой результат вы пытаетесь выполнить, а не странности Java, которую вы пытаетесь воспроизвести, чтобы получить этот результат? – TigerhawkT3
@ TigerhawkT3 ОК, так что в общем, у меня есть эта штука с сокетами, и я хочу создать событие, если вы когда-нибудь получите. Я в основном создал протокол для отправки простых пакетов между сервером и клиентом, и люди могли использовать его в качестве библиотеки, поэтому я хочу, чтобы они могли что-то делать с пакетом при его получении. (Пример: сканирование пакета для конкретных данных), поэтому я хочу событие, в котором пользователь/программист имеет доступ к полученному пакету –
Если вы не читали [этот учебник] (http://pymotw.com/2/abc /) на абстрактных базовых классах – Pynchia