สร้าง class พร้อม method ด้วยภาษา Python แต่พอรันแล้วไม่สำเร็จขึ้นข้อความ Error ว่า TypeError: hello() takes 0 positional arguments but 1 was given ดูแล้วฟังก์ชัน hello ก็ไม่มีการกำหนดค่า arguments อยากทราบวิธีแก้ไข โค้ดตัวอย่างตามด้านล่าง
class MyClass:
def hello():
return 'Hello, Devdit'
myClass = MyClass()
print( myClass.hello() )
วิธีแก้ไข
ปัญหานี้เกิดจาก function หรือ method hello ไม่ได้กำหนด self เป็นค่า argument ซึ่งต้องกำหนดเพื่อให้สามารถเข้าถึง attribute และ method ภายใน class ได้ สามารถแก้ไขโค้ดได้ดังนี้
class MyClass:
def hello(self):
return 'Hello, Devdit'
myClass = MyClass()
print( myClass.hello() )
ผลลัพธ์
Hello, Devdit