Mọi ngôn ngữ lập trình đều có một số từ khóa nhất định với các chức năng và ý nghĩa cụ thể, được tạo sẵn.
Đặt tên cho các biến hoặc hàm của bạn sau những từ khóa này rất có thể sẽ gây ra lỗi. Chúng ta sẽ thảo luận về một trong những trường hợp này trong bài viết này – TypeError: 'str' object is not callable
lỗi trong Python.
Các TypeError: 'str' object is not callable
lỗi chủ yếu xảy ra khi:
- Bạn chuyển một biến có tên
str
như một tham số chostr()
chức năng. - Khi bạn gọi một chuỗi như một hàm.
Trong các phần tiếp theo, bạn sẽ thấy các ví dụ về mã nâng cao TypeError: 'str' object is not callable
lỗi và cách khắc phục chúng.
Ví dụ #1 – Điều gì sẽ xảy ra nếu bạn sử dụng str
làm Tên biến trong Python?
Trong phần này, bạn sẽ thấy điều gì xảy ra khi bạn sử dụng một biến có tên str
như str()
tham số của hàm.
Các str()
chức năng được sử dụng để chuyển đổi các giá trị nhất định thành một chuỗi. str(10)
chuyển đổi số nguyên 10
thành một chuỗi.
Đây là ví dụ mã đầu tiên:
str = "Hello World"
print(str(str))
# TypeError: 'str' object is not callable
Trong đoạn mã trên, chúng tôi đã tạo một biến str
với giá trị là “Xin chào thế giới”. Chúng tôi đã chuyển biến dưới dạng tham số cho str()
chức năng.
Kết quả là TypeError: 'str' object is not callable
lỗi. Điều này xảy ra bởi vì chúng tôi đang sử dụng một tên biến mà trình biên dịch đã nhận ra là một cái gì đó khác.
Để khắc phục điều này, bạn có thể đổi tên biến thành something không phải là từ khóa được xác định trước trong Python.
Đây là cách khắc phục nhanh sự cố:
greetings = "Hello World"
print(str(greetings))
# Hello World
Bây giờ mã hoạt động hoàn hảo.
Ví dụ #2 – Điều gì sẽ xảy ra nếu bạn gọi một chuỗi giống như một hàm trong Python?
Gọi một chuỗi như thể nó là một hàm trong Python sẽ làm tăng TypeError: 'str' object is not callable
lỗi.
Đây là một ví dụ:
greetings = "Hello World"
print(greetings())
# TypeError: 'str' object is not callable
Trong ví dụ trên, chúng tôi đã tạo một biến có tên là greetings
.
Trong khi in nó ra bàn điều khiển, chúng tôi đã sử dụng dấu ngoặc đơn sau tên biến – một cú pháp được sử dụng khi gọi một hàm: greetings()
.
Điều này dẫn đến việc trình biên dịch ném TypeError: 'str' object is not callable
lỗi.
Bạn có thể dễ dàng khắc phục điều này bằng cách bỏ dấu ngoặc đơn.
Điều này cũng giống với mọi loại dữ liệu khác không phải là một hàm. Gắn dấu ngoặc đơn vào chúng sẽ gây ra lỗi tương tự.
Vì vậy, mã của chúng tôi sẽ hoạt động như thế này:
greetings = "Hello World"
print(greetings)
# Hello World
Tóm lược
Trong bài viết này, chúng tôi đã nói về TypeError: 'str' object is not callable
lỗi trong Python.
Chúng tôi đã nói về lý do tại sao có thể xảy ra lỗi này và cách khắc phục.
Để tránh gặp phải lỗi này trong mã của mình, bạn nên:
- Tránh đặt tên biến của bạn theo từ khóa được tích hợp trong Python.
- Đừng bao giờ gọi các biến của bạn như các hàm bằng cách thêm dấu ngoặc đơn vào chúng.
Chúc mừng mã hóa!