Định nghĩa tham số trong Python là gì?

Dù là bất kỳ ngôn ngữ lập trình nào, Đối số và Tham số là hai từ gây nhiều nhầm lẫn cho các lập trình viên. Đôi khi, hai từ này được sử dụng thay thế cho nhau, nhưng thực ra, chúng có hai nghĩa khác nhau nhưng lại giống nhau. Hướng dẫn này giải thích sự khác biệt giữa hai từ này và đi sâu vào các khái niệm với các ví dụ

Cả đối số và tham số đều là biến/hằng được truyền vào hàm. Sự khác biệt là

  1. Đối số là các biến được truyền cho hàm trong lời gọi hàm
  2. Tham số là các biến được sử dụng trong định nghĩa hàm
  3. Số lượng đối số và tham số phải luôn bằng nhau ngoại trừ danh sách đối số có độ dài thay đổi

Thí dụ

đầu ra

Enter the value of the first number: 5
Enter the value of the second number: 2
Sum of two numbers:  7

Những điểm cần nắm bắt từ ví dụ

  1. (num1, num2) nằm trong lệnh gọi hàm và (a, b) nằm trong định nghĩa hàm
  2. (num1, num2) là đối số và (a, b) là tham số

cơ chế

Quan sát rằng trong ví dụ trên, num1 và num2 là các giá trị trong lệnh gọi hàm mà chúng ta đã gọi hàm. Khi hàm được gọi, a và b được thay thế bằng num1 và num2, thao tác được thực hiện trên các đối số và kết quả được trả về

Các chức năng được viết để tránh viết đi viết lại các logic được sử dụng thường xuyên. Để viết một logic chung, chúng tôi sử dụng một số biến, đó là các tham số. Chúng thuộc về định nghĩa hàm. Khi chúng ta cần hàm trong khi viết chương trình, chúng ta cần áp dụng logic hàm trên các biến mà chúng ta đã sử dụng trong chương trình của mình, được gọi là đối số. Sau đó chúng ta gọi hàm với các đối số

Các loại lập luận

Dựa trên cách chúng ta truyền đối số cho tham số, đối số có hai loại

  1. đối số vị trí
  2. Đối số từ khóa
  • Với một số tham số, nếu các đối số tương ứng được truyền theo thứ tự lần lượt, thì các đối số đó được gọi là "Đối số vị trí. "
  • Nếu các đối số được truyền bằng cách gán chúng cho các tham số tương ứng của chúng trong lệnh gọi hàm mà không có ý nghĩa gì đối với thứ tự truyền, thì chúng được gọi là "Đối số từ khóa"

Thí dụ

đầu ra

Details of student:  Raghav
age:  12
grade:  6
Details of student:  Santhosh
age:  12
grade:  6

Những điểm cần nắm bắt từ ví dụ

Cuộc gọi chức năng đầu tiên

  • Hàm có ba tham số-tên, tuổi và lớp. Vì vậy, nó chấp nhận ba đối số
  • Trong lần gọi hàm đầu tiên

Các đối số được truyền theo vị trí cho các tham số, có nghĩa là theo thứ tự đã truyền

  • tên được thay thế bằng "Raghav. "
  • tuổi được thay thế bằng 12 và
  • lớp được thay thế bằng 6
  • Trong lệnh gọi hàm đầu tiên, thứ tự truyền đối số quan trọng. Các tham số chỉ chấp nhận các đối số theo thứ tự nhất định
  • Trong cuộc gọi chức năng thứ hai

Ở đây, đối số đầu tiên, "Santhosh", được truyền dựa trên vị trí của nó để đặt tên và hai đối số tiếp theo được truyền bằng cách gán cho các tham số tương ứng của chúng. Như bạn có thể quan sát, ở đây, vị trí không quan trọng

Tâm điểm

  • Đối số từ khóa phải luôn tuân theo đối số vị trí. Nếu không Python sẽ báo lỗi cú pháp

Nếu chúng ta viết. chi tiết("Santhosh", tuổi = 6, 12)

Gọi theo giá trị và gọi theo tham chiếu

Đây là khái niệm quan trọng nhất về đối số và tham số. Dựa trên loại đối số được truyền cho tham số, có hai phương pháp gọi/gọi hàm-Gọi theo giá trị và Gọi theo tham chiếu

Khi các giá trị của đối số được truyền vào tham số trong hàm, các giá trị được sao chép vào tham số. Phương pháp này được gọi là "Gọi theo giá trị"

Trong phương thức này, các đối số và tham số khác nhau và được lưu trữ ở các vị trí bộ nhớ khác nhau

  • Các thay đổi được thực hiện trên các tham số bên trong hàm không ảnh hưởng đến các đối số trong chương trình và ngược lại
  • Các hàm/phương thức Java chỉ theo sau Gọi theo giá trị

Khi địa chỉ của các đối số được truyền vào tham số thay vì giá trị, phương thức gọi hàm này được gọi là "Gọi theo tham chiếu"

  • Cả đối số và tham số đều đề cập đến cùng một vị trí bộ nhớ
  • Việc thay đổi tham số (con trỏ) sẽ ảnh hưởng đến giá trị của các đối số trong chương trình
  • Theo mặc định, ngôn ngữ C tuân theo Gọi theo giá trị, nhưng sử dụng toán tử gián tiếp và con trỏ;

Python theo phương pháp nào?

Python không sử dụng Gọi theo giá trị hoặc Gọi theo tham chiếu. Nó tuân theo một phương thức gọi là "Gọi theo nhiệm vụ". Trong Python, mọi thực thể đơn lẻ đều là một đối tượng. Các đối tượng được chia thành các đối tượng có thể thay đổi và không thể thay đổi. Điều gì xảy ra trong Python khi chúng ta gán một giá trị cho một biến khác với các ngôn ngữ cấp thấp khác như C hay Java

Giả sử, trong tuyên bố

một = 20

a là biến và 20 là giá trị được gán. Ở đây, trong một vị trí bộ nhớ, 20 được lưu và a là tên chúng tôi đặt cho tham chiếu mà chúng tôi đang tạo cho vị trí bộ nhớ. Bây giờ, nếu chúng ta nói

một = 21

Tên dừng tham chiếu đến vị trí bộ nhớ với 20 và bắt đầu tham chiếu đến một vị trí bộ nhớ khác với 21

Trong các ngôn ngữ khác như C, các biến là các vị trí bộ nhớ lưu trữ các giá trị

Thí dụ

trong C

đầu ra

000000000062FE1C
000000000062FE1C

Trong Python

đầu ra

140714950863232
140714950863264

  • Như bạn có thể quan sát. Trong C, sau khi gán lại giá trị, biến vẫn ở cùng một vị trí bộ nhớ, trong khi trong Python, nó đề cập đến một vị trí bộ nhớ khác. (id -> địa chỉ trong Python)
  • Nhưng đó không phải là tất cả. Ngoài ra còn có các loại đối tượng khác

Bây giờ đến khái niệm đối tượng Mutable và Immutable trong Python

Các đối tượng có thể thay đổi và không thể thay đổi trong Python

  1. Các đối tượng có thể thay đổi là những đối tượng/kiểu dữ liệu trong Python mà chúng ta có thể sửa đổi sau khi tạo chúng Ex. Danh sách, Từ điển, Bộ
  2. Mặt khác, các đối tượng bất biến là các đối tượng không thể sửa đổi sau khi được tạo. Bán tại. int, float, chuỗi, bộ dữ liệu

Thí dụ

Đối tượng có thể thay đổi

đầu ra

2253724439168
2253724439168

hiểu biết

Một danh sách là bất biến, có nghĩa là chúng ta có thể thay đổi hoặc sửa đổi nó sau khi tạo nó. Như bạn có thể quan sát, khi được tạo với tên a, nó được lưu trong địa chỉ "2253724439168". Sử dụng append(), chúng tôi đã thay đổi nó bằng cách nối thêm một giá trị khác. Nó vẫn ở cùng một vị trí bộ nhớ, nghĩa là cùng một đối tượng được sửa đổi

Đối tượng bất biến

đầu ra

140714950863232
140714950863968

hiểu biết

Đây là trường hợp chúng ta đã thảo luận trước đây trong hướng dẫn. Một đối tượng int là bất biến, nghĩa là chúng ta không thể sửa đổi nó sau khi được tạo. Bạn có thể thắc mắc chúng tôi vẫn thêm 23 vào đoạn mã trên. Quan sát rằng đối tượng khi được tạo không giống với đối tượng sau khi thêm. Cả hai đều ở các vị trí bộ nhớ khác nhau, có nghĩa là chúng là các đối tượng khác nhau

Vì vậy, làm thế nào các đối số được chuyển đến các tham số khi một hàm được gọi?

Với tất cả kiến ​​thức về phép toán gán trong Python

  1. Việc chuyển giống như "Gọi theo tham chiếu" nếu các đối số có thể thay đổi
  2. Việc chuyển qua giống như "Gọi theo giá trị" nếu các đối số là bất biến

Thí dụ

đầu ra

Details of the student: 
name:  Harry Styles
age:  15
grade:  10
marks:  [25, 29, 2F1, 30, 26]
10
[25, 29, 21, 30, 26]

hiểu biết

Hàm chấp nhận 4 đối số. Lưu ý các đối số lớp và điểm. grade là một giá trị nguyên có nghĩa là nó không thay đổi. Do đó, một khi được tạo, chúng tôi không thể sửa đổi nó. Nó tuân theo "Gọi theo giá trị". Như chúng ta đã thảo luận trước đó trong hướng dẫn, khi thực hiện theo Gọi theo tham chiếu, "Những thay đổi được thực hiện trên các tham số (con trỏ) sẽ không ảnh hưởng đến giá trị của các đối số trong chương trình". Do đó, giá trị ban đầu của lớp trong chương trình không bị thay đổi sau khi nối chuỗi trong định nghĩa hàm

Trong trường hợp của nhãn hiệu, nó là một danh sách và có thể thay đổi. Vì vậy, nó tuân theo "Gọi theo tham chiếu", có nghĩa là "Những thay đổi được thực hiện trên các tham số (con trỏ) sẽ ảnh hưởng đến các giá trị của các đối số trong chương trình". Do đó, thay đổi được phản ánh trong chương trình ban đầu sau khi nối thêm danh sách trong định nghĩa hàm

Tham số trong lớp Python là gì?

Tham số là các biến xuất hiện giữa các dấu ngoặc trong dòng "def" của định nghĩa hàm Python . Đối số là các đối tượng hoặc giá trị thực tế mà bạn chuyển đến một hàm hoặc phương thức khi gọi nó. Những thuật ngữ này thường được sử dụng thay thế cho nhau.

Tham số trong định nghĩa hàm là gì?

Tham số của hàm là tên được liệt kê trong định nghĩa của hàm . Đối số của hàm là các giá trị thực được truyền cho hàm. Các tham số được khởi tạo thành các giá trị của các đối số được cung cấp.

Ba loại tham số trong Python là gì?

Do đó, chúng tôi kết luận rằng Đối số hàm Python và ba loại đối số hàm của nó. Đây là- các đối số mặc định, từ khóa và tùy ý .

Các tham số khác nhau trong Python là gì?

5 Loại Đối số trong Định nghĩa Hàm Python. đối số từ khóa . đối số vị trí. đối số vị trí tùy ý. đối số từ khóa tùy ý.