PHP
Python

Trang chủ

Tìm hiểu chi tiết về Default arguments trong Python

Ngôn ngữ Python là một ngôn ngữ lập trình đa mục đích, nổi tiếng với cú pháp dễ đọc, dễ học và tính ứng dụng cao. Trong lĩnh vực phát triển web, Python thường được sử dụng thông qua các framework như Django và Flask để xây dựng các ứng dụng web mạnh mẽ, bảo mật và dễ mở rộng. Trong chuyên mục này, Vietnix không chỉ cung cấp kiến thức nền tảng về ngôn ngữ Python mà còn hướng dẫn chi tiết cách xây dựng các ứng dụng web thực tế, sử dụng các framework phổ biến và áp dụng các kỹ thuật tiên tiến. Vietnix cam kết liên tục cập nhật những bài viết mới nhất về các tính năng mới của Python, các thư viện hỗ trợ hữu ích và những phương pháp tốt nhất, giúp bạn khai thác tối đa sức mạnh của Python và hoàn thiện kỹ năng lập trình web của mình.
html
CSS
javascript
sql
python
php
c
c++
bootstrap
react
mysql
reactjs
vuejs
Javascript Tutorials
08/01/2025
7 phút đọc
Theo dõi Vietnix trên

Tìm hiểu chi tiết về Default arguments trong Python

Việc sử dụng default arguments trong Python giúp bạn thiết lập giá trị mặc định cho các tham số của hàm. Tạo sự linh hoạt khi gọi hàm, cho phép bỏ qua việc cung cấp giá trị cho những tham số này nếu không cần thiết. Trong bài viết này mình sẽ giúp bạn tìm hiểu chi tiết hơn về default arguments trong Python.

Default arguments trong Python là gì?

Python cho phép định nghĩa một hàm với các giá trị mặc định gán cho một hoặc nhiều tham số hình thức. Khi một hàm được gọi, nếu không có giá trị nào được truyền vào cho một tham số có giá trị mặc định, Python sẽ sử dụng giá trị mặc định đó. Ngược lại, nếu một giá trị được truyền vào cho tham số, giá trị mặc định sẽ bị thay thế bằng giá trị được truyền vào.

Python cho phép định nghĩa một hàm với các giá trị mặc định gán cho một hoặc nhiều tham số hình thức
Python cho phép định nghĩa một hàm với các giá trị mặc định gán cho một hoặc nhiều tham số hình thức

Các default arguments trong Python là các tham số của hàm sẽ được sử dụng nếu không có đối số nào được truyền vào trong khi gọi hàm.

Ví dụ về default arguments trong Python trong Python

Ví dụ dưới đây minh họa cách sử dụng tham số mặc định trong Python. Trong lời gọi hàm thứ hai, giá trị cho tham số “city” không được truyền vào, vì vậy giá trị mặc định của tham số này là “Hyderabad” sẽ được sử dụng.

# Định nghĩa hàm
def showinfo(name, city = "Hyderabad"):
   "Hàm này in ra thông tin được truyền vào"
   print ("Tên:", name)
   print ("Thành phố:", city)
   return

# Gọi hàm showinfo
showinfo(name = "Ansh", city = "Delhi")
showinfo(name = "Shrey")

Đoạn mã trên sẽ cho ra kết quả như sau:

Tên: Ansh

Thành phố: Delhi

Tên: Shrey

Thành phố: Hyderabad

Giải thích code:

  • def showinfo(name, city = "Hyderabad"):: Dòng này định nghĩa một hàm có tên showinfo với hai tham số: namecity. Tham số city có một giá trị mặc định là "Hyderabad".
  • print ("Tên:", name)print ("Thành phố:", city): Các câu lệnh này in ra tên và thành phố tương ứng, sử dụng giá trị của các tham số được truyền vào.
  • showinfo(name = "Ansh", city = "Delhi"): Lời gọi hàm này truyền cả giá trị cho namecity, giá trị "Delhi" được ưu tiên sử dụng thay vì giá trị mặc định "Hyderabad".
  • showinfo(name = "Shrey"): Lần gọi hàm này chỉ truyền giá trị cho tham số name, giá trị của city không được cung cấp, vì vậy giá trị mặc định "Hyderabad" được sử dụng.

Ví dụ: Gọi hàm không cần Keyword Arguments

Hãy xem xét một ví dụ khác về việc gán giá trị mặc định cho tham số của hàm. Hàm percent() có một default arguments trong Python tên là maxmarks, được thiết lập giá trị là 200. Do đó, chúng ta có thể bỏ qua việc truyền giá trị cho tham số thứ ba khi gọi hàm này.

# Định nghĩa hàm
def percent(phy, maths, maxmarks=200):
   val = (phy + maths) * 100/maxmarks
   return val

phy = 60
maths = 70
# Gọi hàm với tham số mặc định
result = percent(phy, maths)
print ("Tỉ lệ phần trăm:", result)

phy = 40
maths = 46
result = percent(phy, maths, 100)
print ("Tỉ lệ phần trăm:", result)

Khi chạy đoạn code trên, kết quả sẽ hiển thị như sau:

Tỉ lệ phần trăm: 65.0

Tỉ lệ phần trăm: 86.0

Giải thích code:

  • def percent(phy, maths, maxmarks=200):: Dòng này định nghĩa một hàm tên là percent, nhận ba tham số: phy, mathsmaxmarks. Tham số maxmarks có một giá trị mặc định là 200. Hàm này tính phần trăm dựa trên tổng của phy, mathsmaxmarks.
  • val = (phy + maths) * 100/maxmarks: Câu lệnh này tính phần trăm, sau đó kết quả được gán cho biến val.
  • return val: Câu lệnh này trả về giá trị đã tính toán ở trên.
  • phy = 60, maths = 70: Hai dòng này gán các giá trị cho biến phymaths để sử dụng trong lần gọi hàm đầu tiên.
  • result = percent(phy, maths): Lời gọi hàm này chỉ truyền hai giá trị là phymaths. Vì tham số maxmarks không được chỉ định giá trị trong lúc gọi hàm, hàm percent() sẽ sử dụng giá trị mặc định 200.
  • print ("Tỉ lệ phần trăm:", result): Dòng này in ra kết quả của phép tính tỉ lệ phần trăm ở trên.
  • phy = 40, maths = 46: Hai dòng này gán lại giá trị mới cho hai biến phymaths.
  • result = percent(phy, maths, 100): Lần này khi gọi hàm percent(), giá trị 100 đã được cung cấp cho tham số maxmarks thay cho giá trị mặc định 200.
  • print ("Tỉ lệ phần trăm:", result): Tương tự, câu lệnh này sẽ in ra giá trị tính toán được.

Sử dụng Mutable Objects làm default arguments trong Python

Trong Python, các tham số mặc định chỉ được đánh giá một lần duy nhất khi hàm được định nghĩa, chứ không phải mỗi khi hàm được gọi. Do đó, nếu bạn sử dụng một đối tượng có thể thay đổi (mutable object) làm tham số mặc định và sửa đổi đối tượng đó bên trong hàm, các lần gọi hàm tiếp theo sẽ tiếp tục sử dụng tham chiếu đến cùng một đối tượng đã được thay đổi.

Các đối tượng Python mà có thể được thay đổi sau khi được tạo ra được gọi là các đối tượng có thể thay đổi (mutable objects).

Ví dụ

Đoạn code dưới đây giải thích cách sử dụng đối tượng có thể thay đổi làm default arguments trong Python:

def fcn(nums, numericlist = []):
   numericlist.append(nums + 1)
   print(numericlist) 
    
# Gọi hàm
fcn(66)
fcn(68)
fcn(70)

Khi chạy đoạn code trên, kết quả sẽ là:

[67]

[67, 69]

[67, 69, 71]

Giải thích code:

  • def fcn(nums, numericlist = []): Hàm fcn được định nghĩa với một tham số bắt buộc nums và một tham số tùy chọn numericlist, tham số này được gán một danh sách rỗng làm giá trị mặc định. Đây là điểm quan trọng cần lưu ý, vì danh sách rỗng là một đối tượng có thể thay đổi.
  • numericlist.append(nums + 1): Trong mỗi lần gọi hàm, câu lệnh này thêm giá trị nums + 1 vào cuối danh sách numericlist.
  • print(numericlist): Câu lệnh này in danh sách numericlist ra màn hình sau mỗi lần thêm giá trị mới vào.
  • fcn(66), fcn(68), fcn(70): Đây là ba lần gọi hàm fcn, lần lượt với các giá trị 66, 6870.

Lời kết

Chúng ta vừa cùng nhau tìm hiểu chi tiết về đối số mặc định trong Python, từ định nghĩa, cách hoạt động đến những lưu ý quan trọng khi sử dụng. Hy vọng những kiến thức này sẽ giúp bạn viết code Python hiệu quả hơn, tránh được những lỗi không đáng có.

Cao Lê Viết Tiến

PHP Leader
tại
Vietnix

Kết nối với mình qua

Icon Quote
Icon Quote

Học lập trình online cùng vietnix

Học lập trình online cùng Vietnix

PHPXem thêmThu gọn