2016-12-05 5 views
0
class Test: 
    def generate_attachment(self, type, owner_id, media_id): 
     return type + str(owner_id) + '_' + str(media_id) 

Как представить эту функцию как функцию лямбда? Нужно ли мне отмечать «я» в переменных лямбда?Лямбда-функция в классах

+2

Что именно вы пытаетесь сделать? –

ответ

2

Нет, вы можете просто сделать это:

my_lambda = lambda type, owner_id, media_id: type + str(owner_id) + '_' + str(media_id) 

Используя параметр, называемый type является плохой идеей, хотя, так как функция с таким именем уже существует в Python, и вы перезаписать его.

+1

Вы не сможете назвать его, как метод. Вернее, параметр 'type' будет экземпляром, на который был вызван метод. Таким образом, вы бы назвали его как 't = Test(); t.my_lambda (owner_id, media_id) 'и' type' будет объектом 't'. Наверное, не то, что хочет OP. – mipadi

+0

Как предусмотрено, функция не использует 'self'. – yper

+0

'self' (объект вызова метода) всегда передается методу в качестве первого параметра. – mipadi

Смежные вопросы