Hàm callable() trong Python

Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm callable() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi.

callable() trong Python kiểm tra xem các đối tượng có thể gọi hay không. Nếu đối tượng được phép gọi, hàm trả về giá trị TRUE, nếu không sẽ trả về FALSE.

Cú pháp hàm callable() trong Python

callable(object)

Các thông số của hàm callable():

Hàm callable() chỉ có một tham số duy nhất là object.

Hàm callable() trả về giá trị nào?

  • TRUE: Đối tượng có thể gọi.
  • FALSE: Đối tượng không thể goi.

Tuy nhiên bạn nên chú ý một điều là, cho dù khi callable() trả về TRUE thì vẫn có trường hợp gọi tới đối tượng thất bại.

Nhưng nếu kết quả trả về là FALSE thì chắc chắn sẽ không thể gọi được đối tượng.

Ví dụ 1: callable() hoạt động như thế nào?

x = 5
print(callable(x))

def ktraHam():
print("Ktra")

y = ktraHam
print(callable(y))

Khi bạn chạy chương trình, output trả về sẽ là:

False
True

Ở ví dụ này, đối tượng x không thể gọi được, còn đối tượng y có thể gọi được.

Ví dụ 2: Đối tượng có thể gọi

class Quantrimang:
def __call__(self):
print('In ra man hinh')

print(callable(Quantrimang))

Khi bạn chạy chương trình, output trả về sẽ là:

True

Vậy đối trượng trong class Quantrimang ở đây có thể được gọi.

Bạn có thể tiếp tục thực hiện tiếp các lệnh cần thiết khác.

class Quantrimang:
def __call__(self):
print('In ra màn hình')

InstanceOfQuantrimang = Quantrimang()

# Prints 'In ra màn hình'
InstanceOfQuantrimang()

Ví dụ 3: Đối tượng có xuất hiện nhưng không thể gọi ra.

class Quantrimang:
def printLine(self):
print('In ra màn hình')

print(callable(Quantrimang))

Khi bạn chạy chương trình, output trả về sẽ là:

True

Đối trượng trong class Quantrimang ở đây trả về kết quả là gọi được, nhưng khi thực hiện lệnh khác sẽ xảy ra lỗi, ví dụ:

class Quantrimang:
def printLine(self):
print('In ra màn hình')

print(callable(Quantrimang ))

InstanceOfQuantrimang = Quantrimang ()
# Lỗi xảy ra
# 'Quantrimang' không thể gọi
InstanceOfQuantrimang()

Chương trình báo lỗi:

True

Traceback (most recent call last):
File "<stdin>", line 10, in <module>
InstanceOfQuantrimang()
TypeError: 'Quantrimang' object is not callable

Hàm callable() chỉ có vài chú ý như vậy thôi. Bạn nhớ thực hành thường xuyên với các bài tập Python nhé.

Xem thêm:

Bài trước: Hàm bytes trong Python

Bài tiếp: Hàm chr() trong Python

Thứ Bảy, 17/11/2018 10:10
51 👨 65