Tạo một hàm theo cách không bình thường

Hôm nay, ngồi vu vơ bên cửa sổ với những hạt mưa rơi, em bỗng nhớ về Xà Ngữ. Em nghĩ ra một câu đố muốn thử thách mọi người. Đó là, em có một hàm như thế này

def func(*args, **kwargs):
    print('I love you wờ wú wờ wú wờ')
    print('Đừng dùng lambda nhé!')
    return

Bây giờ, em cũng muốn tạo ra hàm func y chang như vậy, nhưng không được có đoạn này

def func(*args, **kwargs):

:heart: :heart: :heart:

2 Likes

Không biết có tính không.

func = exec("print('I love you wờ wú wờ wú wờ'); print('Đừng dùng lambda nhé!')")
# bonus: func = exec("print('Không thèm dùng lambda')")

Nó là hàm, thế nên em có thể dùng đi dùng lại nó nhiều lần chứ anh. Thêmđiều nữa, em còn pass được một nùi *args, **kwargs nữa.

Này thì dùng đi dùng lại nhiều lần :smile:

def not_fun():
    print('wtf')
    global func
    exec(func)


global func
func = "print('I love you wờ wú wờ wú wờ'); print('Đừng dùng lambda nhé!')"

not_fun()

Nhưng mà hàm này thì lấy đâu ra *args, **kwargs nhỉ?

Thế này được không :smiley:

exec("def " + """func(*args, **kwargs):
    print('I love you wờ wú wờ wú wờ')
    print('Đừng dùng lambda nhé!')
    return

""")
1 Like

Chạy thử đi đã

1 Like

Giống vầy.

Mình đã từng làm với các magic method để build framework bên PHP. Nếu chỉ làm app thì đừng nên sử dụng, ngay cả khi sử dụng để build lib thì code cũng khó đọc.

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?