Devdit
 

Python เรียกใช้ method ที่สร้างไม่ได้ วิธีแก้ไข

636

สร้าง 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
แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ