HomeLập trìnhPythonđối tượng builtin_function_or_method...

đối tượng builtin_function_or_method không thể đăng ký được Lỗi Python [SOLVED]


Như tên cho thấy, lỗi TypeError: builtin_function_or_method object is not subscriptable là một “lỗi đánh máy” xảy ra khi bạn cố gọi một hàm tích hợp sai cách.

Khi xảy ra “lỗi đánh máy”, chương trình sẽ cho bạn biết rằng bạn đang trộn lẫn các loại. Điều đó có nghĩa là, chẳng hạn, bạn có thể nối một chuỗi với một số nguyên.

Trong bài viết này, tôi sẽ chỉ cho bạn lý do tại sao xảy ra lỗi TypeError: builtin_function_or_method object is not subscriptable và cách bạn có thể khắc phục nó.

Tại sao đối tượng TypeError: builtin_function_or_method không thể đăng ký lại xảy ra

Mọi chức năng tích hợp sẵn của Python, chẳng hạn như print(), append(), sorted(), max()và những cái khác phải được gọi bằng dấu ngoặc đơn hoặc dấu ngoặc tròn (()).

Nếu bạn cố gắng sử dụng dấu ngoặc vuông, Python sẽ không coi đó là lệnh gọi hàm. Thay vào đó, Python sẽ nghĩ rằng bạn đang cố truy cập thứ gì đó từ một danh sách hoặc chuỗi và sau đó đưa ra lỗi.

Ví dụ: đoạn mã bên dưới đưa ra lỗi vì tôi đang cố in giá trị của biến có dấu ngoặc vuông phía trước print() chức năng:

Và nếu bạn bao quanh những gì bạn muốn in bằng dấu ngoặc vuông ngay cả khi mục đó có thể lặp lại, bạn vẫn gặp lỗi:

gadgets = ["Mouse", "Monitor", "Laptop"]
print[gadgets[0]]

# Output: Traceback (most recent call last):
#   File "built_in_obj_not_subable.py", line 2, in <module>
#     print[gadgets[0]]
# TypeError: 'builtin_function_or_method' object is not subscriptable

Vấn đề này không dành riêng cho print() chức năng. Nếu bạn cố gắng gọi bất kỳ hàm tích hợp nào khác có dấu ngoặc vuông, bạn cũng gặp lỗi.

Đọc thêm  Phát triển trò chơi Python – Cách tạo trò chơi đua rùa với PyCharm

Trong ví dụ dưới đây, tôi đã cố gắng gọi max() với dấu ngoặc vuông và tôi gặp lỗi:

numbers = [5, 7, 24, 6, 90]
max_num = max(numbers)
print[max_num]

# Traceback (most recent call last):
#   File "built_in_obj_not_subable.py", line 11, in <module>
#     print[max_num]
# TypeError: 'builtin_function_or_method' object is not subscriptable

Cách khắc phục TypeError: đối tượng builtin_function_or_method không phải là lỗi có thể đăng ký

Để khắc phục lỗi này, tất cả những gì bạn cần làm là đảm bảo rằng bạn sử dụng dấu ngoặc đơn để gọi hàm.

Bạn chỉ phải sử dụng dấu ngoặc vuông nếu muốn truy cập một mục từ dữ liệu có thể lặp lại, chẳng hạn như chuỗi, danh sách hoặc bộ:

gadgets = ["Mouse", "Monitor", "Laptop"]
print(gadgets[0])

# Output: Mouse
numbers = [5, 7, 24, 6, 90]
max_num = max(numbers)
print(max_num)

# Output: 90

kết thúc

Bài viết này cho bạn biết lý do xảy ra lỗi TypeError: builtin_function_or_method object is not subscriptable và cách khắc phục.

Hãy nhớ rằng bạn chỉ cần sử dụng dấu ngoặc vuông ([]) để truy cập một mục từ dữ liệu có thể lặp lại và bạn không nên sử dụng nó để gọi một hàm.

Nếu gặp phải lỗi này, bạn nên tìm trong mã của mình bất kỳ điểm nào mà tại đó bạn đang gọi một hàm tích hợp có dấu ngoặc vuông và thay thế bằng dấu ngoặc đơn.

Cảm ơn vì đã đọc.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status