Tham số của function trong Python

Sơ lược Date/Time trong Python

Trong Python bạn có thể tạo một hàm với nhiều tham số. Khi gọi hàm thì bắt buộc phải nhập giá trị cho tham số, tuy nhiên với những tham số có giá trị mặc định thì không cần.

1.Giá trị mặc định của tham số

Giá trị mặc định tức là nếu bạn không nhập giá trị lúc gọi hàm thì tham số sẽ lấy giá trị mặc định đó. Để tạo giá trị mặc định thì bạn dùng toán tử = và gán ngay lúc tạo hàm.

Ví dụ
def greet(msg = "Good morning!"):

Biến msg sẽ có giá trị mặc định là ‘Good morning!“. Hãy xem ví dụ đầy đủ sau để hiểu rõ hơn.

def greet(name, msg = "Good morning!"):
   """
   This function greets to
   the person with the
   provided message.

   If message is not provided,
   it defaults to "Good
   morning!"
   """

   print("Hello",name + ', ' + msg)

greet("Kate")
greet("Bruce","How do you do?")

Ở đoạn gọi hàm mình đã gọi với hai cách khác nhau, 

  • greet("Kate") là cách gọi chỉ truyền vào một tham số nên function sẽ lấy giá trị mặc định cho tham số thứ hai.
  • greet("Bruce","How do you do?") là các gọi  đầy đủ nên giá trị mặc định không được sử dụng.

Chạy chương trình này thì kết quả sẽ như sau:

Hello Kate, Good morning!
Hello Bruce, How do you do?

Lưu ý: Bạn không thể tạo một tham số có giá trị mặc định đằng trước những tham số không có giá trị mặc định, như ví dụ dưới đây là sai.

def greet(msg = "Good morning!", name):

2. Truyền tham số theo key name

Truyền tham số theo key name tức là lúc gọi hàm và truyền tham số bạn sẽ nhập thêm tên của tham số, cách này có ưu điểm ở chỗ là bạn không cần phải nhớ chính xác thứ tự của các tham số, nhưng bù lại bạn phải nhớ tên của tham số.

Xem thêm: Lệnh break và continue trong Python

Như ở ví dụ trên mình có thể gọi các cách như sau:

>>> # 2 keyword arguments
>>> greet(name = "Bruce",msg = "How do you do?")

>>> # 2 keyword arguments (out of order)
>>> greet(msg = "How do you do?",name = "Bruce") 

>>> # 1 positional, 1 keyword argument
>>> greet("Bruce",msg = "How do you do?")

3. Tham số không giới hạn

Tham số không giới hạn hay còn gọi là tham số Arbitrary. Khi sử dụng tham số này thì bạn có thể truyền bao nhiêu cũng được lúc gọi hàm.

Để tạo một tham số không giới hạn thì bạn thêm ký tự * đằng trước tham số đó. Hãy xem ví dụ dưới đây.

def greet(*names):
   """This function greets all
   the person in the names tuple."""

   # names is a tuple with arguments
   for name in names:
       print("Hello",name)

greet("Monica","Luke","Steve","John")

Như bạn thấy, mình phải sử dụng vòng lặp để lặp qua từng tham số, và lúc gọi hàm thì nhập bao nhiêu cũng được.

Chạy lên thì kết quả chương trình sẽ là:

Hello Monica
Hello Luke
Hello Steve
Hello John

Đây là cách gọi hàm với nhiều đối số, khi bạn truyền vào thì nó sẽ tạo thành một Tuple nên bắt buộc phải sử dụng vòng lặp để lặp qua từng giá trị.

Lời kết: Như vậy là bạn đã học xong các trường hợp và cách sử dụng tham số trong function, hy vọng bài viết sẽ hữu ích với bạn, hẹn gặp lại các bạn ở bài tiếp theo nhé.

Leave a Reply

Your email address will not be published. Required fields are marked *