Gán một chức năng cho một python biến

Trong Python, hàm là đối tượng "hạng nhất". chúng có thể được gán tên biến cho chúng, chúng có thể được truyền dưới dạng đối số cho các hàm khác và thậm chí có thể được trả về từ các hàm khác. Một hàm được đặt tên khi nó được định nghĩa, nhưng tên đó có thể được gán lại để chỉ một đối tượng khác nếu muốn [đừng làm điều này trừ khi bạn muốn. ]

Như ví dụ sau minh họa, có thể gán nhiều hơn một tên biến cho cùng một đối tượng hàm

>>> def cosec[x]:
..    """Return the cosecant of x, cosec[x] = 1/sin[x]."""
..    return 1./math.sin[x]
...
>>> cosec

>>> cosec[math.pi/4]
1.4142135623730951
>>> csc = cosec
>>> csc

>>> csc[math.pi/4]
1.4142135623730951

Phép gán csc = cosec liên kết mã định danh [tên biến] csc với cùng một đối tượng hàm với mã định danh cosec. chức năng này sau đó có thể được gọi với csc[] cũng như với cosec[]

Đảm bảo không gọi hàm bằng cách sử dụng dấu ngoặc đơn trong phép gán nếu bạn định gọi hàm sau này

Chúng tôi đã gán hàm multiply cho một biến có tên là func

Biến func lưu trữ một tham chiếu [con trỏ] đến hàm multiply, vì vậy chúng ta có thể gọi nó giống như cách chúng ta gọi trực tiếp hàm multiply - sử dụng dấu ngoặc đơn

Nếu bạn sử dụng dấu ngoặc đơn trong phép gán, bạn sẽ gán kết quả của việc gọi hàm cho biến

Chúng tôi đã sử dụng dấu ngoặc đơn, vì vậy chúng tôi đã gán kết quả của việc gọi hàm multiply cho biến thay vì gán tham chiếu cho hàm

Lưu ý rằng bạn phải sử dụng rõ ràng câu lệnh

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
4 trong hàm để trả về giá trị

Tất cả các hàm không trả về giá trị hoàn toàn trả về

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
5

Các tham số mà hàm nhận [nếu có] phải được truyền dưới dạng đối số giữa các dấu ngoặc đơn

Điều mà bạn có thể thường phải làm là lưu trữ một tham chiếu đến hàm trong một biến bằng cách cung cấp trước một số đối số

Chúng tôi đã sử dụng phương thức này để lấy một đối tượng có thể gọi mới với

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
6 được truyền làm đối số vị trí đầu tiên của nó

Bây giờ, bất cứ khi nào biến

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
7 được gọi, hàm func0 sẽ được gọi với
def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
6 làm đối số vị trí đầu tiên của nó

Đây là lý do tại sao chúng ta chỉ có thể gọi hàm với một đối số duy nhất, mặc dù phải mất 2

Điều này hữu ích khi bạn muốn lấy một đối tượng có thể gọi được với một số hoặc tất cả các đối số của hàm được chỉ định trước

Dưới đây là một ví dụ về việc gán một hàm không nhận bất kỳ đối số nào cho một biến

Hàm func2 không sử dụng câu lệnh

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
4 để trả về một giá trị, do đó, nó chỉ in thông báo đã chỉ định và trả về ngầm định
def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
5

Đảm bảo rằng bạn không cố gán kết quả của việc gọi một hàm không trả về giá trị cho một biến

Chúng tôi đã chỉ định kết quả của việc gọi một hàm trả về

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
5 cho một biến

Đảm bảo sử dụng rõ ràng câu lệnh

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]
4 nếu bạn muốn trả về một giá trị từ hàm

Sự khác biệt giữa việc lưu trữ một tham chiếu [con trỏ] đến một hàm trong một biến và đầu ra của việc gọi hàm là sử dụng dấu ngoặc đơn

Khi bạn sử dụng dấu ngoặc đơn, bạn gọi hàm và lưu trữ đầu ra thực tế, không phải là tham chiếu có thể được gọi sau này

Đây là một bài viết khác trong loạt Hàm trong Python. Hôm nay chúng ta sẽ nói về việc gán các chức năng cho các biến. Nếu bạn chưa đọc các phần trước, vui lòng làm như vậy. Họ đây rồi

1] Giới thiệu về Chức năng

2] Các hàm có tham số

3] Tuyên bố hoàn trả

4] Thông số bắt buộc

5] Thông số tùy chọn

6] Tham số tùy chọn có thể thay đổi

7] Đối số từ khóa

8] Số lượng tham số vị trí tùy ý

9] Số lượng tham số từ khóa tùy ý

10] Số lượng tùy ý của cả tham số vị trí và từ khóa

11] Hàm lồng nhau

12] Gọi hàm trong các hàm khác

Hàm là đối tượng hạng nhất, có nghĩa là chúng là đối tượng giống như bất kỳ đối tượng nào khác, điều đó có nghĩa là chúng có thể được sử dụng giống như các đối tượng khác. Dịch điều này sang tiếng Anh đơn giản, chúng ta có thể gán các hàm cho các biến và chuyển chúng làm đối số cho các hàm khác. Chúng cũng có thể được trả về từ các chức năng khác. Nếu bạn muốn đọc thêm về các hàm với tư cách là đối tượng hạng nhất, tôi có một bài viết về điều đó

Tìm hiểu cách tạo các ứng dụng GUI đẹp mắt

bằng Python sử dụng khung Kivy

Toàn diện, dành cho người mới bắt đầu Kivy, dễ làm theo

Tải sách tại đây [PDF] hoặc trên Amazon.

sách điện tử / bìa mềm [đen trắng] / paperback [full color]

Bây giờ hãy tập trung vào việc gán chức năng cho các biến. Nếu bạn gán một hàm cho một biến, bạn có thể sử dụng biến đó làm hàm

def double[number]:
    return number * 2

print[double[5]]

a = "abc"
print[a]

a = double
print[a[17]]

b = a
print[b[12]]

Đây là đầu ra

10
abc
34
24

Vì vậy, trong đoạn mã trên, biến a lần đầu tiên được gán một chuỗi. Sau đó, nó được gán chức năng kép. Từ thời điểm này, có thể sử dụng a làm chức năng kép. Cuối cùng, biến b đã được gán cùng một tham chiếu với a, vì vậy bây giờ nó cũng trỏ đến hàm kép. Cuối cùng, chúng ta có thể sử dụng double, a hoặc b và tất cả chúng đều tham chiếu đến cùng một chức năng

Tôi có thể gán một hàm cho một biến trong Python không?

Trong Python, chúng ta có thể gán một hàm cho một biến . Và sử dụng biến đó, chúng ta có thể gọi hàm bao nhiêu lần chúng ta muốn. Qua đó, tăng khả năng sử dụng lại code. Chỉ cần gán một hàm cho biến mong muốn nhưng không có [] i. e. chỉ với tên của chức năng.

Bạn có thể gán một biến trong một hàm không?

Thông thường, khi bạn tạo một biến bên trong một hàm, biến đó là cục bộ và chỉ có thể được sử dụng bên trong hàm đó . Để tạo một biến toàn cục bên trong một hàm, bạn có thể sử dụng từ khóa toàn cầu.

Bạn có thể đặt tên cho một hàm là một biến trong Python không?

Trong Python, hàm là đối tượng "hạng nhất''. chúng có thể được gán tên biến , chúng có thể được truyền dưới dạng đối số cho các hàm khác và thậm chí có thể được trả về từ các hàm khác.

Chúng ta có thể sử dụng một hàm làm giá trị biến không?

Có, một chức năng có thể được sử dụng như một giá trị biến

Chủ Đề