Hàm như một biến trong Python
Trong Python, về bản chất, một hàm là một biến. Và điều này có nghĩa là nó cũng có thể được truyền đi.
Giả sử chúng ta có một hàm trả về một dấu chấm than:
def func():
return '!'
Hãy truyền tên hàm vào print
mà không có dấu ngoặc đơn như một biến:
print(func)
Sau khi thực thi mã, một đối tượng đặc biệt chứa thông tin về hàm này sẽ được in ra console:
<function func at 0x0000022816383E20>
Bây giờ hãy khai báo biến func2,
trong giá trị của nó, chúng ta sẽ truyền hàm func1.
Bản thân hàm sẽ được truyền không phải theo
giá trị, mà theo tham chiếu như một đối tượng. Và khi
gọi func2 với dấu ngoặc đơn,
kết quả làm việc của func1 sẽ được in ra
console:
def func1():
print('!')
func2 = func1
func2() # sẽ in ra '!'
Kết quả thực thi đoạn mã sau sẽ là gì:
def func():
print('hello, user!')
greet = func
print(greet)
Kết quả thực thi đoạn mã sau sẽ là gì:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))