Bạn có thể có nhiều chức năng có cùng tên python không?
Trước đây trong sách giáo khoa này, bạn đã biết rằng tham số đầu vào là thông tin bắt buộc mà bạn chuyển đến hàm để hàm chạy thành công. Hàm sẽ lấy giá trị hoặc đối tượng được cung cấp làm tham số đầu vào và sử dụng nó để thực hiện một số tác vụ Show
Bạn cũng đã học được rằng trong Python, tham số bắt buộc có thể được xác định bằng cách sử dụng biến giữ chỗ, chẳng hạn như 7, đại diện cho giá trị hoặc đối tượng sẽ được thực hiện trong hàm
Tuy nhiên, đôi khi bạn có thể cần thêm thông tin để chức năng chạy thành công May mắn thay, bạn có thể viết các hàm nhận nhiều hơn một tham số bằng cách xác định bao nhiêu tham số nếu cần, chẳng hạn
Khi hàm được gọi, người dùng có thể cung cấp bất kỳ giá trị nào cho 8 hoặc 9 mà hàm có thể lấy làm đầu vào cho tham số đó (e. g. biến giá trị đơn, danh sách, mảng có nhiều mảng, cột khung dữ liệu gấu trúc)Viết một hàm với nhiều tham số trong PythonHãy tưởng tượng rằng bạn muốn xác định một hàm sẽ nhận hai giá trị số làm đầu vào và trả về tích của các giá trị đầu vào này (i. e. nhân các giá trị) Bắt đầu với từ khóa 0 và tên hàm, giống như bạn đã làm trước đây để xác định một hàm
Tiếp theo, cung cấp hai tên biến giữ chỗ cho các tham số đầu vào, như hình bên dưới
Thêm mã để nhân các giá trị và câu lệnh 1 để trả về tích của hai giá trị
Cuối cùng, hãy viết một chuỗi tài liệu để cung cấp thông tin chi tiết về chức năng này, bao gồm một mô tả ngắn gọn về chức năng (i. e. cách thức hoạt động, mục đích) cũng như xác định các thông số đầu vào (i. e. loại, mô tả) và kết quả trả về (i. e. loại, mô tả)
Gọi các hàm tùy chỉnh với nhiều tham số trong PythonBây giờ bạn đã định nghĩa hàm 2, bạn có thể gọi nó bằng cách cung cấp các giá trị cho hai tham số đầu vào 2 3Nhớ lại rằng bạn cũng có thể cung cấp các biến được xác định trước làm đầu vào, ví dụ: giá trị cho lượng mưa và giá trị khác cho giá trị chuyển đổi đơn vị 4 5 3Lưu ý rằng hàm này không được xác định cụ thể cho các chuyển đổi đơn vị, nhưng vì nó hoàn thành một tác vụ có thể khái quát hóa nên nó có thể được sử dụng cho các chuyển đổi đơn vị đơn giản Kết hợp chuyển đổi đơn vị và tính toán thống kê thành một chức năngBây giờ, hãy tưởng tượng rằng bạn muốn chuyển đổi cả đơn vị của một mảng có nhiều mảng từ milimét sang inch và tính giá trị trung bình dọc theo một trục xác định cho cột hoặc hàng Nhớ lại định nghĩa hàm mà bạn đã viết trước đây để chuyển đổi các giá trị từ milimét sang inch 1Bạn có thể mở rộng chức năng này để bao gồm việc chạy giá trị trung bình dọc theo một trục được chỉ định cho các cột hoặc hàng, sau đó sử dụng chức năng này lặp đi lặp lại trên nhiều mảng có nhiều mảng khi cần Chức năng mới này có thể có các tên mô tả cho chức năng và các tham số đầu vào mô tả rõ ràng hơn những gì chức năng thực hiện Bắt đầu bằng cách xác định chức năng với tên mô tả và hai tham số cần thiết
Sử dụng các tên biến giữ chỗ làm nổi bật mục đích của từng tham số 2Tiếp theo, thêm mã để trước tiên tính giá trị trung bình của mảng đầu vào dọc theo một trục đã chỉ định, sau đó chuyển đổi giá trị trung bình từ milimét sang inch Đầu tiên, thêm dòng mã để tính giá trị trung bình dọc theo một trục đã chỉ định 3Tiếp theo, thêm dòng mã để chuyển đổi mảng trung bình từ milimét sang inch. Trong trường hợp này, câu lệnh 1 sẽ trả về giá trị trung bình của mảng tính bằng inch 4Lưu ý rằng hàm có thể được viết để chuyển đổi các giá trị trước rồi tính giá trị trung bình. Tuy nhiên, do hàm sẽ hoàn thành cả hai tác vụ và trả về giá trị trung bình theo đơn vị mong muốn, nên tính toán giá trị trung bình trước rồi chỉ chuyển đổi các giá trị đó sẽ hiệu quả hơn thay vì chuyển đổi tất cả các giá trị trong mảng đầu vào Cuối cùng, bao gồm một chuỗi tài liệu để cung cấp thông tin chi tiết về chức năng này, bao gồm một mô tả ngắn gọn về chức năng (i. e. cách thức hoạt động, mục đích) cũng như xác định các thông số đầu vào (i. e. loại, mô tả) và kết quả trả về (i. e. loại, mô tả) 5Bây giờ bạn đã xác định được 4, bạn có thể gọi hàm với các tham số đầu vào phù hợpTạo một số dữ liệu và kiểm tra chức năng mới của bạn với các giá trị đầu vào khác nhau cho tham số 5 6 7 8 9 0 1Xác định tham số đầu vào tùy chọn cho một chức năngHàm đã xác định trước đó của bạn hoạt động tốt nếu bạn muốn sử dụng một trục cụ thể cho giá trị trung bình Tuy nhiên, hãy lưu ý điều gì sẽ xảy ra khi bạn cố gắng gọi hàm mà không cung cấp giá trị trục, chẳng hạn như đối với mảng một chiều 2 3Bạn gặp lỗi thiếu 5 4Điều gì sẽ xảy ra nếu bạn muốn làm cho hàm trở nên tổng quát hơn, để giá trị trục là tùy chọn? Bạn có thể làm điều đó bằng cách chỉ định giá trị mặc định cho 5 là 8 như hình bên dưới 5Hàm sẽ giả định rằng giá trị trục là 8 (i. e. giá trị đầu vào chưa được người dùng cung cấp), trừ khi được chỉ định khác trong lệnh gọi hàmTuy nhiên, như đã viết, mã hàm ban đầu sử dụng giá trị trục để tính giá trị trung bình, vì vậy bạn cần thực hiện thêm một số thay đổi để mã trung bình chạy với giá trị trục nếu giá trị được cung cấp hoặc chạy không có giá trị trục nếu May mắn thay, bạn đã học về các câu lệnh có điều kiện, giờ đây bạn có thể thêm câu lệnh này vào hàm của mình để chạy mã trung bình có hoặc không có giá trị trục khi cần Sử dụng câu lệnh có điều kiện, bạn có thể kiểm tra xem 5 có bằng 8 hay không, trong trường hợp đó, mã trung bình sẽ chạy mà không có giá trị trục 6Câu lệnh 22 có nghĩa là 5 không bằng 8 (i. e. người dùng đã cung cấp giá trị đầu vào) và do đó sẽ chạy mã trung bình với giá trị trục được chỉ định 7Mã để chuyển đổi đơn vị và 1 vẫn giữ nguyên, chỉ với tên được cập nhật 8Cuối cùng, bao gồm một chuỗi tài liệu để cung cấp thông tin chi tiết về chức năng đã sửa đổi này. Lưu ý rằng giá trị trục đã được gắn nhãn tùy chọn trong chuỗi tài liệu 9Lưu ý rằng hàm sẽ trả về cùng một đầu ra như trước cho mảng hai chiều 26 8 9Tuy nhiên, bây giờ bạn cũng có thể cung cấp mảng một chiều làm đầu vào mà không cần trục xác định và nhận đầu ra phù hợp 2 3Kết hợp tải xuống và nhập tệp dữ liệu vào một chức năngBạn cũng có thể viết các hàm đa tham số để kết hợp các tác vụ khác thành một hàm, chẳng hạn như tải xuống và nhập tệp dữ liệu vào khung dữ liệu gấu trúc Hãy suy nghĩ về mã mà bạn cần đưa vào chức năng
Từ mã này, bạn có thể thấy rằng bạn sẽ cần hai tham số đầu vào cho hàm kết hợp
Bắt đầu bằng cách chỉ định tên hàm và tên biến giữ chỗ cho các tham số đầu vào cần thiết 4Tiếp theo, thêm mã để tải xuống và nhập 5Tuy nhiên, nếu thư mục làm việc chưa được thiết lập trước khi hàm này được gọi và bạn không muốn sử dụng đường dẫn tuyệt đối thì sao? Vì bạn biết rằng hàm 29 tạo thư mục 30 trong thư mục chính nếu nó chưa tồn tại, nên bạn có thể yên tâm giả định rằng hàm kết hợp này cũng sẽ tạo thư mục đóNhư vậy, bạn có thể bao gồm việc đặt thư mục làm việc trong hàm, do đó bạn không phải lo lắng về việc cung cấp đường dẫn tuyệt đối cho hàm 6Cuối cùng, bao gồm một chuỗi tài liệu để cung cấp thông tin chi tiết về chức năng này, bao gồm một mô tả ngắn gọn về chức năng (i. e. cách thức hoạt động, mục đích) cũng như xác định các thông số đầu vào (i. e. loại, mô tả) và kết quả trả về (i. e. loại, mô tả) 7Bây giờ bạn đã xác định chức năng, bạn có thể nhập các gói cần thiết để chạy chức năng và xác định các biến mà bạn sẽ sử dụng làm tham số đầu vào 8 9Sử dụng các biến này, giờ đây bạn có thể gọi hàm để tải xuống và nhập tệp vào khung dữ liệu gấu trúc 0 1thángprecip_2002precip_2013mùa0Jan1. 070. 27Mùa đông1 tháng 20. 441. 13Mùa đông2tháng 31. 501. 72Mùa xuân3 tháng 4. 204. 14Mùa xuân4Tháng 3. 202. 66Xuân5Tháng Sáu1. 180. 61Mùa hè6Tháng 70. 091. 03Mùa hè7Tháng 81. 441. 40Mùa hè 8 tháng 91. 5218. 16Mùa thu9 tháng 102. 442. 24Mùa thu10Nov0. 780. 29Mùa thu11Dec0. 020. 50Mùa đông Làm cho chức năng hiệu quả hơn không phải lúc nào cũng có nghĩa là nhiều tham số hơnLưu ý rằng trước đó bạn đã xác định 31 để nhận hai tham số, một cho URL và cho đường dẫn và chức năng này hoạt động tốt để hoàn thành tác vụTuy nhiên, với một cuộc điều tra nhỏ về chức năng 32, bạn có thể thấy rằng đầu ra của chức năng đó thực sự là một đường dẫn đến tệp đã tải xuống 2Trong chi tiết chuỗi tài liệu được cung cấp, bạn có thể thấy rằng hàm trả về đường dẫn đầy đủ đến dữ liệu đã tải xuống 3Điều này có nghĩa là bạn có thể xác định lại 31 để hiệu quả hơn bằng cách sử dụng đầu ra của hàm 32 làm đầu vào cho hàm 35Bây giờ, bạn thực sự chỉ cần một tham số cho URL và bạn không phải xác định thư mục làm việc trong hàm để tìm tệp thích hợp 4Chức năng sửa đổi của bạn hiện chỉ thực thi một dòng, thay vì ba dòng. Lưu ý rằng chuỗi tài liệu cũng được cập nhật để phản ánh rằng chỉ có một tham số đầu vào cho chức năng này Bây giờ bạn có thể gọi hàm chỉ với một tham số duy nhất cho URL 5thángprecip_2002precip_2013mùa0Jan1. 070. 27Mùa đông1 tháng 20. 441. 13Mùa đông2tháng 31. 501. 72Mùa xuân3 tháng 4. 204. 14Mùa xuân4Tháng 3. 202. 66Xuân5Tháng Sáu1. 180. 61Mùa hè6Tháng 70. 091. 03Mùa hè7Tháng 81. 441. 40Mùa hè 8 tháng 91. 5218. 16Mùa thu9 tháng 102. 442. 24Mùa thu10Nov0. 780. 29Mùa thu11Dec0. 020. 50Mùa đông Thực hành viết các hàm đa tham số cho Pandas DataframesBạn có một hàm kết hợp phép tính trung bình dọc theo một trục đã chỉ định và chuyển đổi từ milimét sang inch cho một mảng có nhiều mảng Bạn có thể cần thay đổi chức năng này như thế nào để tạo một chức năng tương tự cho khung dữ liệu gấu trúc, nhưng hiện đang chuyển đổi từ inch sang milimét? Về ý nghĩa, bạn có thể chạy số liệu thống kê tóm tắt về gấu trúc bằng cách sử dụng một trục được chỉ định (giống như một mảng có nhiều mảng) với mã sau 6Với giá trị trục 36, mã sẽ tính giá trị trung bình cho từng cột số trong khung dữ liệuVới giá trị trục 37, mã sẽ tính giá trị trung bình cho từng hàng với các giá trị số trong khung dữ liệuHãy suy nghĩ về những dòng mã trong chức năng hiện có 4 có thể được sửa đổi để chạy mã tương đương trên khung dữ liệu gấu trúcLưu ý rằng 39 trả về giá trị trung bình của khung dữ liệu (dọc theo trục đã chỉ định) dưới dạng chuỗi gấu trúcThực hành viết các hàm đa tham số cho mảng NumpyBạn cũng có chức năng kết hợp tải xuống và nhập dữ liệu cho khung dữ liệu gấu trúc, bạn có thể sửa đổi chức năng cho các cấu trúc dữ liệu khác, chẳng hạn như mảng có nhiều mảng Bạn có thể cần thay đổi hàm này như thế nào để tạo một hàm tương đương cho các mảng có nhiều mảng? Hãy suy nghĩ về những dòng mã nào trong hàm hiện có 31 có thể được sửa đổi để viết một hàm mới tải xuống và nhập dữ liệu vào một mảng có nhiều mảngĐể bắt đầu, bạn có thể muốn viết một hàm cho mảng 1 chiều và một hàm khác cho mảng 2 chiều Để nâng cao trong thực hành của mình, bạn có thể nghĩ đến việc thêm một câu lệnh điều kiện để kiểm tra loại tệp (. txt cho mảng 1 chiều. csv cho mảng 2 chiều) trước khi thực thi mã nhập thích hợp Chúng ta có thể có nhiều chức năng có cùng tên không?Vâng, nó được gọi là nạp chồng hàm . Nhiều chức năng có thể có cùng tên nếu bạn muốn, tuy nhiên PHẢI có các thông số khác nhau.
Một chức năng có thể có cùng tên?Có, các biến thuộc hàm khác nhau có thể có cùng tên vì phạm vi của chúng bị giới hạn trong khối mà chúng được xác định. Các biến thuộc về các chức năng khác nhau trong một mã có thể có cùng tên nếu chúng ta khai báo biến đó trên toàn cục như trong đoạn mã sau bên dưới.
Điều gì xảy ra nếu bạn định nghĩa hai hàm trong một mô-đun có cùng tên?Khi bạn xác định một hàm mới có cùng tên với một hàm đã xác định trước đó, tên hàm hiện được liên kết với đối tượng hàm mới và đối tượng hàm cũ được lấy lại bởi . .
Python có thể chạy hai chức năng cùng một lúc không?Có hai cách để “làm nhiều việc cùng lúc” trong Python. phân luồng và đa xử lý . Trong bài viết này, chúng tôi sẽ tập trung vào cái sau. Một sự khác biệt ngắn. luồng chạy mã đồng thời. chúng tôi có một CPU đang hoạt động nhanh chóng chuyển đổi giữa nhiều luồng. |