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

Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực

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)
Các khóa học qua video:
Python SQL Server PHP C# Lập trình C Java HTML5-CSS3-JavaScript
Học trên YouTube <76K/tháng. Đăng ký Hội viên
Viết nhanh hơn - Học tốt hơn
Giải phóng thời gian, khai phóng năng lực
Copied !!!