def zero(self):
return "zero"
def one(self):
return "one"
def two(self):
return "two"
switcher = {
0: zero,
1: one,
2: two
}
def numbers_to_strings2(self,argument):
# Get the function from switcher dictionary
func = self.switcher.get(argument, "nothing")
# Execute the function
return func(self)
ตรง function numbers_to_strings2
object ชื่อ func ที่ได้จากการ get ค่าจาก dict type ชื่อ switcher
แล้วนำ func ไปเรียกใช้ โดยเรียก func(self)
การเรียกแบบนี้ใช้งาน function แบบนี้เรียกว่าอะไรหรอครับ
พอดี cross ภาษามาเขียน python นิดหน่อย และแก้ไขปัญหา case by case ไป
แต่อยากเข้าใจส่วนตรงนี้ แล้วไม่รู้จะเริ่มศึกษาส่วนที่เป็นปัญหาจากไหน รบกวนผู้รู้หน่อยครับ
เข้าใจได้ประมาณว่ามันต้องถูก assign ค่าแบบสติงที่อยู่บน datatype ของอะไรสักอย่างที่ถ้า print เลยทันทีจะได้ค่าเป็น <function two at 0x03A8AAE0> เข้าใจว่าเป็นผลมาจาก get ของ dict
ผมเลยลอกวิธีเขียนแบบงูๆปลาที่ global โดยตัดส่วนของการ get ที่ dict ออกแล้วใส่ค่าไปเลย ทำความเข้าใจเองแบบนี้ก็ไม่ได้ตามที่คิดไว้
Error คือ TypeError: 'str' object is not callable
ลองครอบด้วย str() ก็ไม่เกี่ยว