Python: Lời gọi hàm (Call the function)


Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên

Lời gọi hàm

Các hàm thường giao tiếp hay gọi đến nhau bằng lời gọi hàm (call function). Việc giao tiếp hay gọi đến nhau của các hàm có thể thông qua việc truyền đối số.

Cú pháp gọi hàm:

tên_hàm(danh_sách_đối_số)

trong đó,

danh_sách_đối_số: Nếu phần định nghĩa hàm có danh_sách_tham_số thì bắt buộc phải có danh_sách_đối_số với số lượng phải bằng với số lượng tham số trong danh_sách_tham_số. Bản chất của danh_sách_đối_số là các dữ liệu (giá trị) muốn truyền đi.

Ví dụ:

nh nghĩa hàm
def tinhTong(a, b):
  print(a,"+",b,"=",a+b)

tinhTong(1, 2)    #li gi hp l, 1 được truyn cho a, 2 được truyn cho b
tinhTong(1)       #li gi không hp l, 1 được truyn cho a, nhưng không có dliu truyn cho b
tinhTong(1, 2, 3) #li gi không hp lvì slượng dliu truyn đi vượt quá slượng tham snhn

Truyền dữ liệu

Tất cả các đối số trong ngôn ngữ Python đều được truyền bằng tham chiếu. Điều này có nghĩa là ta có thể thay đổi giá trị của biến bên trong hàm gọi tại hàm được gọi.

Ví dụ:

nh nghĩa hàm swap()
def swap(myList):
  tg=myList[0]
  myList[0]=myList[1]
  myList[1]=tg
  
#đnh nghĩa hàm main()
def main():
  a=5
  b=10
  myList=[a,b];

  swap(myList) #gi ti hàm swap truyn đi list
  a=myList[0]
  b=myList[1]
  print(a,b)   #in ra kết qusau khi swap, a=10 và b=5
main()

Tuy nhiên, có một ví dụ sau đây trong đó đối số được truyền bằng tham chiếu nhưng tham chiếu lại bị ghi đè bên trong hàm được gọi, và điều này dẫn đến dữ liệu trong myList không thay đổi được ở hàm gọi.

Ví dụ:

def swap(myList):
  myList=[9,10]

def main():
  a=5
  b=10
  myList=[a,b];

  swap(myList)
  a=myList[0]
  b=myList[1]
  print(a,b) #a vn cha 5, b vn cha 10
main()

Trong ví dụ trên, trong hàm swap() thì tham số myList là cục bộ, và điều này dẫn đến việc mặc dù thay đổi myList bên trong hàm nhưng không ảnh hưởng đến myList trong hàm main(). Kết quả là không hoán đổi giá trị của hai biến a và b cho nhau được.

» Tiếp: Đối số và tham số hàm
« Trước: Hàm (Function)
Khóa học qua video:
Lập trình Python All Lập trình C# All SQL Server All Lập trình C All Java PHP HTML5-CSS3-JavaScript
Đăng ký Hội viên
Tất cả các video dành cho hội viên
Copied !!!