Tại sao method trong python mình tạo không có đối số nhưng chương trình lại yêu cầu?

hi guys!
ở đây mình tạo func() không đối số, vậy tại sao chạy báo lỗi á?
nó bảo hàm myfunc() không đối số , nhưng có 1 đối số được thiết lập là vì sao ạ?

trong class thì tất cả các method phải có đối số là self

8 Likes

Dịch ra đúng hơn là hàm myfunc() được định nghĩa để không lấy tham số nào nhưng khi gọi lại nhận được một tham số. Khi gọi một method trong một class thì Python sẽ tự động truyền self vào làm tham số đầu tiên cho method đó. Có hai cách giải quyết:

  1. Khai báo method nhận tham số self

  2. Tạo một static method để Python không tự truyền self vào.

@staticmethod
def myfunc():
    #Đang viết code trên đt nên hơi lười tí
6 Likes

e cảm ơn…

Instance method thôi nhé.

5 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?