Tôi đang cố gắng viết một chức năng ngay bây giờ và mục đích của nó là đi qua một đối tượng __dict__
và thêm một mục vào từ điển nếu mục đó không phải là một hàm. Đây là mã của tôi:Thêm các mục vào danh sách nếu nó không phải là chức năng
def dict_into_list(self):
result = {}
for each_key,each_item in self.__dict__.items():
if inspect.isfunction(each_key):
continue
else:
result[each_key] = each_item
return result
Nếu tôi không nhầm, inspect.isfunction là nghĩa vụ phải nhận ra lambdas như các chức năng là tốt, có đúng không? Tuy nhiên, nếu tôi viết
c = some_object(3)
c.whatever = lambda x : x*3
thì chức năng của tôi vẫn bao gồm lambda. Ai đó có thể giải thích tại sao điều này?
Ví dụ, nếu tôi có một lớp học như thế này:
class WhateverObject:
def __init__(self,value):
self._value = value
def blahblah(self):
print('hello')
a = WhateverObject(5)
Vì vậy, nếu tôi nói print(a.__dict__)
, cần trả lại {_value:5}
Bạn có thể hiển thị ví dụ độc lập thể hiện sự cố không? – BrenBarn
@Tyler chức năng có nghĩa là, những gì bạn mong đợi? Mà không phải là chức năng trong trường hợp của bạn? – Nilesh