Đâ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
Thách đấu. Cho trước là hàm số
10
abc
34
24
4. Làm cách nào để gán hàm cho biến 10
abc
34
24
5, để bạn có thể gọi 10
abc
34
24
6 và nó chạy hàm Finxter0?
def f[]: print['Finxter'] # Assign function f to g g[]
Đầu ra mong muốn của bạn là đầu ra của chức năng
10
abc
34
24
4Finxter
Làm thế nào để thực hiện điều này theo cách Pythonic nhất?
Tổng quan. Chúng tôi kiểm tra hai phương pháp để thực hiện thách thức này. Bạn có thể chạy chúng trong sổ ghi chép Jupyter tương tác của chúng tôi hoặc đọc các giải thích sau trước
Hãy đi sâu vào hai phương pháp
Phương pháp 1. Gán đối tượng chức năng cho tên biến mới
Một cách đơn giản để hoàn thành nhiệm vụ là tạo một tên biến mới g và gán đối tượng hàm f cho biến mới bằng câu lệnh f = g
Đây là đoạn mã giải quyết vấn đề
# Method 1 def f[]: print['Finxter'] # Assign function f to g g = f # Run g g[]
Đầu ra là đầu ra dự kiến của chức năng
10
abc
34
24
4Finxter
Lý do là cả hai biến đều trỏ đến cùng một đối tượng hàm trong bộ nhớ. Bạn có thể thấy điều này trong công cụ hiển thị bộ nhớ sau
Nhấp vào tiếp theo để khám phá bộ nhớ thay đổi như thế nào với mã đang mở
Phương pháp 2. Hàm bao bọc Lambda
Bạn cũng có thể sử dụng hàm
Finxter3 là đối tượng hàm ẩn danh không có tên. Hàm lambda nhận 0 hoặc nhiều đối số và trả về kết quả của biểu thức sau dấu hai chấm. Trong trường hợp của chúng tôi, hàm lambda chỉ đơn giản là bao bọc hàm ban đầu
Finxter0, nghĩa là nó chạy bên trong
Finxter0 và trả về giá trị trả về của
10
abc
34
24
4. Đối tượng chức năng mới hoạt động tương tự như 10
abc
34
24
4Đây là cách phương pháp này giải quyết thách thức của chúng tôi
10
abc
34
24
0Đầu ra là như nhau
Finxter
Hãy kiểm tra xem bạn hiểu các khái niệm được giới thiệu trong bài viết này đến đâu
[Câu đố Python] Kiểm tra kỹ năng đổi tên chức năng của bạn
Câu đố Python giúp bạn rèn luyện kỹ năng hiểu code nhanh chóng. Bạn có thể tìm ra câu đố mã này?
10
abc
34
24
2Đầu ra của đoạn mã này là gì?
Giải trình. Mã dự phòng cho biết phong cách lập trình kém. Một cách tuyệt vời để tránh mã dư thừa được cung cấp bởi các chức năng
Các chức năng khái quát hóa một hành vi nhất định và đóng gói một chuỗi các hướng dẫn chương trình. Hàm lý tưởng giải quyết một mục tiêu cấp cao ngữ nghĩa duy nhất. Chẳng hạn, bạn có thể gói gọn một tác vụ phức tạp, chẳng hạn như tìm kiếm trên web, thành một hàm. Bằng cách này, nhiệm vụ phức tạp trở thành một nhiệm vụ đơn giản. gọi chức năng. Các chức năng cho phép người khác sử dụng lại mã của bạn và cho phép bạn sử dụng lại mã của người khác. Bạn đang đứng trên vai người khổng lồ
Bạn có thể định nghĩa một hàm với từ khóa
Finxter8, theo sau là tên và các đối số của hàm. Trình thông dịch Python duy trì một bảng ký hiệu lưu trữ tất cả các định nghĩa hàm. Theo cách này, trình thông dịch có thể liên kết mỗi lần xuất hiện của tên hàm với chức năng đã xác định
Có thể đổi tên chức năng của bạn trong bảng ký hiệu. Điều này đơn giản như việc gán tên hàm cho một biến mới [e. g.
10
abc
34
24
4]. Khi gọi hàm, trình thông dịch Python sẽ tìm hàm đã đổi tên trong bảng và thực thi nó. Điều này làm cho cuộc sống của bạn dễ dàng hơn khi làm việc với mã của người khác mà bạn không được phép thay đổiBạn có thể kiểm tra đầu ra của câu đố này trên ứng dụng câu đố tương tác Finxter của chúng tôi. com. Bạn có phải là một lập trình viên bậc thầy?
Kiểm tra kỹ năng của bạn bây giờ
Video liên quan
Hàm Python. Hướng dẫn Python. Học lập trình Python
Xem video này trên YouTube
Chris
Trong khi làm việc với tư cách là nhà nghiên cứu về các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây