Hàm gọi Python có quá nhiều tham số
Mô hình của tôi trông như thế này. model_dict={ y1. jim_model(x1,norm11,nthr11,holes_k11,holes_tau11,interface_k11,interface_tau), y2. jim_model(x1,norm12,nthr12,holes_k12,holes_tau12,interface_k12,interface_tau) } fit = Fit(model_dict,x1=x1_data,y1=y1_data,y2=y2_data) fit_results=fit. hành hình() Show
trong đó jim_model là một chức năng tôi đã xác định trước đó. Sự phù hợp hoạt động tốt chỉ với một trong các bộ dữ liệu nhưng gây ra lỗi trên cho tôi với hai bộ dữ liệu cùng một lúc. Đây có phải là trường hợp có quá nhiều tham số cùng một lúc và có thể có cách giải quyết không? Nhiều khi chúng ta có xu hướng thêm quá nhiều tham số vào một hàm. Nhưng đó không phải là ý tưởng tốt nhất. ngược lại, khi một hàm yêu cầu quá nhiều đối số, việc nhóm chúng thành các đối tượng nhất quán sẽ giúp viết mã đơn giản hơn Tại sao?
Nếu bạn cần sử dụng một trường khác về địa chỉ hoặc người, bạn sẽ cần thêm tham số mới và cập nhật tất cả các phương thức hiện có để khớp với chữ ký hàm mới Điều gì sẽ xảy ra nếu chúng ta thêm đối số Trạng thái? Lưu trữ trường này vào đúng đối tượng giúp hiểu ý nghĩa của nó
Một lý do khác để tránh sử dụng nhiều tham số? Giả sử hai nhà phát triển, Alice và Bob, đang nghiên cứu một số chức năng tác động đến phương thức 1. Alice, trên nhánh của mình, thêm một thông số mới, 2. Trong khi đó, Bob, tại chi nhánh của anh ấy, thêm 3. Sau đó, cả Alice và Bob hợp nhất các nhánh của họ trên nhánh chính. Kết quả là gì? . phương thức hiện có hai tham số boolean và thứ tự chúng được thêm vào kết quả cuối cùng có thể gây ra một số rắc rối. Thậm chí nhiều hơn, bởi vì mọi cuộc gọi đến phương thức 1 hiện có một (hoặc hai) tham số mới, có giá trị phụ thuộc vào ngữ cảnh. Vì vậy, sau khi hợp nhất, giá trị mà Bob đã xác định cho tham số 5 có thể được sử dụng thay vì giá trị do Alice thêm vào Python có một loạt các chức năng tích hợp hữu ích mà bạn có thể sử dụng để thực hiện tất cả các loại nội dung. Và mỗi người thực hiện một nhiệm vụ cụ thể Nhưng bạn có biết rằng Python cũng cho phép bạn định nghĩa các chức năng của riêng mình không? Bài viết này sẽ chỉ cho bạn cách tạo và gọi các hàm Python của riêng bạn. Nó cũng sẽ cung cấp cho bạn cái nhìn tổng quan về cách truyền các tham số và đối số đầu vào cho các hàm của bạn Chức năng là gì?Hàm là một khối mã biệt lập thực hiện một tác vụ cụ thể Các hàm rất hữu ích trong lập trình vì chúng loại bỏ việc sao chép và dán mã không cần thiết và quá mức thông qua một chương trình Nếu một hành động nhất định được yêu cầu thường xuyên và ở những nơi khác nhau, thì đó là một dấu hiệu tốt để bạn có thể viết một hàm cho nó. Các chức năng có nghĩa là có thể tái sử dụng Các chức năng cũng giúp tổ chức mã của bạn Nếu cần thay đổi, bạn chỉ cần cập nhật chức năng nhất định đó. Điều này giúp bạn không phải tìm kiếm các đoạn mã khác nhau nằm rải rác ở các vị trí khác nhau trong chương trình của bạn bằng cách sao chép và dán Điều này tuân thủ nguyên tắc DRY (Don't Repeat Yourself) trong phát triển phần mềm Mã bên trong hàm chỉ chạy khi hàm được gọi Các hàm có thể chấp nhận các đối số và giá trị mặc định và có thể hoặc không trả lại các giá trị cho người gọi sau khi mã đã chạy Cách xác định hàm trong PythonCú pháp chung để tạo một hàm trong Python trông giống như thế này
Hãy phá vỡ những gì đang xảy ra ở đây
Hãy nhớ rằng nếu bạn quên dấu ngoặc đơn ________ 40 hoặc dấu hai chấm ________ 41 khi cố gắng xác định một hàm mới, Python sẽ cho bạn biết bằng một dấu ngoặc kép 4Cách xác định và gọi một hàm cơ bản trong PythonDưới đây là một ví dụ về hàm cơ bản không có câu lệnh trả về và không nhận bất kỳ tham số nào Nó chỉ in 5 bất cứ khi nào nó được gọi 0Khi bạn đã xác định một chức năng, mã sẽ không tự chạy Để thực thi mã bên trong hàm, bạn phải thực hiện lệnh gọi hàm hoặc nếu không thì gọi hàm Sau đó, bạn có thể gọi hàm bao nhiêu lần tùy thích Để gọi một chức năng, bạn cần phải làm điều này
Đây là một sự cố của mã
Để gọi hàm từ ví dụ trên, hàm không nhận bất kỳ đối số nào, hãy làm như sau
Cách xác định và gọi hàm có tham sốCho đến giờ, bạn đã thấy các chức năng đơn giản không thực sự làm được gì nhiều ngoài việc in một cái gì đó ra bàn điều khiển Điều gì sẽ xảy ra nếu bạn muốn chuyển một số dữ liệu bổ sung cho hàm? Chúng tôi đã sử dụng các thuật ngữ ở đây như tham số và đối số định nghĩa của họ chính xác là gì? Các tham số là một trình giữ chỗ được đặt tên chuyển thông tin vào các hàm Chúng hoạt động như các biến được định nghĩa cục bộ trong dòng định nghĩa của hàm 3Trong ví dụ trên, có một tham số, 6Thay vào đó, chúng ta có thể sử dụng 7 – nó hoạt động giống như ví dụ trước 6Có thể có một danh sách các tham số bên trong dấu ngoặc đơn, tất cả được phân tách bằng dấu phẩy 7Ở đây, các tham số trong hàm là 6 và 9Khi một hàm được gọi, các đối số được truyền vào Đối số, giống như tham số, là thông tin được truyền cho hàm Cụ thể, chúng là các giá trị thực tế tương ứng với các tham số trong định nghĩa hàm Gọi hàm từ một ví dụ trước và chuyển vào một đối số sẽ như thế này 0Hàm có thể được gọi nhiều lần, mỗi lần truyền các giá trị khác nhau 1Các đối số được trình bày cho đến nay được gọi là đối số vị trí Tất cả các đối số vị trí là rất cần thiết Số lượng đối số vị trí quan trọngKhi gọi hàm cần truyền đúng số đối số, nếu không sẽ xảy ra lỗi Khi nói đến các đối số vị trí, số lượng đối số được truyền vào lời gọi hàm phải hoàn toàn giống với số lượng tham số trong định nghĩa của hàm Bạn không thể bỏ đi hoặc thêm vào bất kỳ điều gì nữa Giả sử rằng bạn có chức năng này có hai tham số 2Nếu hàm được gọi chỉ với một đối số được truyền vào, như thế này, thì sẽ có lỗi 00đầu ra 01Nếu hàm được gọi với ba đối số được truyền vào, sẽ lại xảy ra lỗi 02 03Cũng sẽ có lỗi nếu chúng ta không chuyển vào đối số 04 05Thay vào đó, chúng ta cần hai đối số, vì hai tham số được liệt kê trong định nghĩa hàm 06Thứ tự của các đối số vị trí quan trọngBên cạnh việc bao gồm đúng số đối số, điều quan trọng cần lưu ý là thứ tự mà các đối số được thông qua trong các vấn đề Các đối số cần được truyền theo đúng thứ tự như thứ tự của các tham số đã được khai báo trong định nghĩa của hàm Nó hoạt động giống như gán biến Đối số đầu tiên là giá trị của tham số đầu tiên trong định nghĩa của hàm. Đối số thứ hai là giá trị của tham số thứ hai trong định nghĩa của hàm – v.v. 07Nếu thứ tự không chính xác, đầu ra có thể không có nhiều ý nghĩa và không như bạn dự định 08Cách sử dụng đối số từ khóa trong hàm PythonCho đến giờ, bạn đã thấy một loại đối số, đối số vị trí Với các đối số vị trí, các hàm được gọi chỉ với các giá trị được truyền trong lệnh gọi hàm. Ở đó, mỗi giá trị tương ứng trực tiếp với số lượng, thứ tự và vị trí của từng tham số trong định nghĩa hàm Tuy nhiên, các hàm trong Python có thể chấp nhận một loại đối số khác, đó là đối số từ khóa Trong trường hợp này, thay vì chỉ truyền vào các giá trị trong lệnh gọi hàm, thay vào đó, bạn chỉ định tên của tham số và sau đó là giá trị bạn muốn gán cho nó, ở dạng 30Mỗi phím khớp với từng tham số trong định nghĩa hàm Gọi rõ ràng tên của các tham số và các giá trị mà chúng nhận sẽ giúp hiểu rõ hơn về những gì bạn đang truyền vào và tránh mọi sự nhầm lẫn có thể xảy ra 09Các đối số từ khóa, như đã thấy ở trên, có thể theo một thứ tự cụ thể. Nhưng chúng linh hoạt hơn các đối số theo vị trí theo nghĩa là thứ tự của các đối số bây giờ không quan trọng Vì vậy, bạn có thể làm điều này và sẽ không có lỗi 0Nhưng bạn vẫn phải đưa ra số đối số chính xác Bạn có thể sử dụng cả đối số vị trí và từ khóa cùng nhau trong một lệnh gọi hàm, như ví dụ bên dưới khi có một đối số vị trí và một đối số từ khóa 1Trong trường hợp này, thứ tự lại quan trọng Các đối số vị trí luôn đi trước và tất cả các đối số từ khóa phải tuân theo các đối số vị trí. Nếu không sẽ có lỗi 2Cách xác định tham số có giá trị mặc định trong PythonĐối số chức năng cũng có thể có giá trị mặc định. Chúng được gọi là đối số mặc định hoặc tùy chọn Để đối số hàm có giá trị mặc định, bạn phải gán giá trị mặc định cho tham số trong định nghĩa của hàm Bạn làm điều này với biểu mẫu 31, trong đó 32 sẽ là giá trị mặc định cho tham số đó 3Như bạn thấy, đối số mặc định không bắt buộc trong lệnh gọi hàm và giá trị của 33 sẽ luôn mặc định là Python nếu giá trị khác không được cung cấp trong lệnh gọiTuy nhiên, các giá trị mặc định có thể dễ dàng bị ghi đè nếu bạn cung cấp một giá trị khác trong lệnh gọi của hàm 4Có thể có nhiều hơn một giá trị mặc định được truyền cho hàm Khi hàm được gọi, không, một, một số hoặc tất cả các đối số mặc định có thể được cung cấp và thứ tự không thành vấn đề 5Các đối số mặc định có thể được kết hợp với các đối số không mặc định trong lời gọi của hàm Đây là một hàm chấp nhận hai đối số. một vị trí, không mặc định ( 6) và một tùy chọn, mặc định ( 33) 6Đối số mặc định, 36, là tùy chọn. Nhưng đối số vị trí, 6, sẽ luôn luôn được yêu cầu. Nếu một 33 khác không được chuyển vào, giá trị sẽ luôn mặc định là PythonMột điều khác cần đề cập ở đây là, khi mặc định và không mặc định được sử dụng cùng nhau, thứ tự chúng được xác định trong định nghĩa hàm có ý nghĩa quan trọng Tất cả các đối số vị trí đi trước và được theo sau bởi các đối số mặc định Điều này sẽ không làm việc 7đầu ra 8Phần kết luậnTrong bài viết này, bạn đã học cách khai báo hàm và gọi chúng bằng tham số trong ngôn ngữ lập trình Python Đây là phần giới thiệu về cách tạo các hàm đơn giản và cách truyền dữ liệu vào chúng, với các tham số. Chúng tôi cũng đã xem xét các loại đối số khác nhau như đối số vị trí, từ khóa và mặc định Tóm lại
Nếu bạn muốn tìm hiểu sâu hơn và tìm hiểu thêm về ngôn ngữ lập trình Python, freeCodeCamp có chứng chỉ Python miễn phí Bạn sẽ bắt đầu từ những điều cơ bản và nguyên tắc cơ bản của ngôn ngữ, sau đó tiến tới các khái niệm nâng cao hơn như cấu trúc dữ liệu và cơ sở dữ liệu quan hệ. Cuối cùng, bạn sẽ xây dựng 5 dự án để thực hành những gì bạn đã học Cảm ơn bạn đã đọc và học tập vui vẻ QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Học một cái gì đó mới mỗi ngày và viết về nó Nếu bài viết này hữu ích, hãy tweet nó Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu Có thể gọi một hàm có nhiều đối số không?Lưu ý rằng khi bạn đang làm việc với nhiều tham số, lệnh gọi hàm phải có cùng số lượng đối số như số lượng tham số và các đối số phải được truyền theo cùng một thứ tự
Một hàm có thể có bao nhiêu tham số trong Python?Hàm Python có thể có nhiều tham số . Giống như việc bạn không thể đến trường mà không có ba lô và hộp bút, các chức năng cũng có thể cần nhiều hơn một đầu vào để thực hiện các hoạt động của chúng.
Một hàm Python có thể nhận số lượng đối số không giới hạn không?Một kỹ thuật tương tự có thể được sử dụng để tạo các hàm có thể xử lý số lượng không giới hạn các cặp từ khóa/đối số. Nếu một đối số của một hàm được đặt trước hai dấu hoa thị, thì bên trong hàm, Python sẽ thu thập tất cả các cặp từ khóa/đối số không được khai báo rõ ràng dưới dạng đối số trong từ điển
Một hàm có thể chấp nhận bao nhiêu tham số?Không có không có giới hạn tối đa để truyền tham số hoặc đối số cho hàm do người dùng xác định. Nhưng đối với một chức năng được xác định trước, nó phụ thuộc vào. Không chắc chắn, tuy nhiên một số nguồn nói rằng hàm C chấp nhận ít nhất 127 tham số. |