มารู้จักกับ ฟังก์ชั่น built in ที่มีชื่อว่า getattr ของ python ไว้ใช้ ใช้แสดงค่าของ object

แชร์ความรู้ภาษา Python ไพทอน การเขียนโปรแกรมภาษาไพทอน

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
jirawoot
PHP Super Hero Member
PHP Super Hero Member
โพสต์: 721
ลงทะเบียนเมื่อ: 17/06/2019 10:30 am

มารู้จักกับ ฟังก์ชั่น built in ที่มีชื่อว่า getattr ของ python ไว้ใช้ ใช้แสดงค่าของ object

โพสต์โดย jirawoot » 18/07/2019 4:44 pm

ฟังก์ชั่น built in ที่มีชื่อว่า getattr ของ python
Function built in คือ เป็นฟังก์ชั่นในภาษา python ที่สามารถทำการเรียกใช้งานได้ทันที ซึ่งบ้างฟังก์ชั่นของภาษา python นั่นต้องทำการเรียกใช้โดยการ import มาก่อน ก่อนที่จะทำการใช้ครับ ในวันนี้ผมจะมีความรู้และตัวอย่างของตัวฟังก์ชั่น built in มาให้ก็คือ ฟังก์ชั่น getattr() ฟังก์ชั่นตัวนี้สามารถใช้แสดงค่าของ object เช่น ตัวแปรที่อยู่ภายในclass ซึ่งก็จะมีรูปแบบและตัวอย่างดังต่อไปนี้

รูปแบบของ ฟังก์ชั่น getattr()

โค้ด: เลือกทั้งหมด

getattr(object, name[, default])


ตัวอย่างโค้ด

โค้ด: เลือกทั้งหมด

class preson():
    fristname='My'
    lastname='Python'
    age=23
    email ='Mypython@gmail.com'
var_preson = getattr(preson,'email')
print(var_preson)

จากโค้ดด้านบนนะครับให้ทำการแสดงค่าตัวแปร email ใน class preson จึงได้ผลลัพธ์
Selection_035.png
Selection_035.png (7.34 KiB) เปิดดู 118 ครั้ง


อีกตัวอย่าง

โค้ด: เลือกทั้งหมด

class preson():
    fristname='My'
    lastname='Python'
    age=23
    email ='Mypython@gmail.com'
   
for var_preson in dir(preson):
    print("preson.%s = %r" % (var_preson, getattr(preson, var_preson)))

จะได้ผลลัพธ์ดังนี้

โค้ด: เลือกทั้งหมด

preson.__class__ = <class 'type'>
preson.__delattr__ = <slot wrapper '__delattr__' of 'object' objects>
preson.__dict__ = mappingproxy({'__module__': '__main__', 'fristname': 'My', 'lastname': 'Python', 'age': 23, 'email': 'Mypython@gmail.com', '__dict__': <attribute '__dict__' of 'preson' objects>, '__weakref__': <attribute '__weakref__' of 'preson' objects>, '__doc__': None})
preson.__dir__ = <method '__dir__' of 'object' objects>
preson.__doc__ = None
preson.__eq__ = <slot wrapper '__eq__' of 'object' objects>
preson.__format__ = <method '__format__' of 'object' objects>
preson.__ge__ = <slot wrapper '__ge__' of 'object' objects>
preson.__getattribute__ = <slot wrapper '__getattribute__' of 'object' objects>
preson.__gt__ = <slot wrapper '__gt__' of 'object' objects>
preson.__hash__ = <slot wrapper '__hash__' of 'object' objects>
preson.__init__ = <slot wrapper '__init__' of 'object' objects>
preson.__init_subclass__ = <built-in method __init_subclass__ of type object at 0x12cc318>
preson.__le__ = <slot wrapper '__le__' of 'object' objects>
preson.__lt__ = <slot wrapper '__lt__' of 'object' objects>
preson.__module__ = '__main__'
preson.__ne__ = <slot wrapper '__ne__' of 'object' objects>
preson.__new__ = <built-in method __new__ of type object at 0x9e5880>
preson.__reduce__ = <method '__reduce__' of 'object' objects>
preson.__reduce_ex__ = <method '__reduce_ex__' of 'object' objects>
preson.__repr__ = <slot wrapper '__repr__' of 'object' objects>
preson.__setattr__ = <slot wrapper '__setattr__' of 'object' objects>
preson.__sizeof__ = <method '__sizeof__' of 'object' objects>
preson.__str__ = <slot wrapper '__str__' of 'object' objects>
preson.__subclasshook__ = <built-in method __subclasshook__ of type object at 0x12cc318>
preson.__weakref__ = <attribute '__weakref__' of 'preson' objects>
preson.age = 23
preson.email = 'Mypython@gmail.com'
preson.fristname = 'My'
preson.lastname = 'Python'



อ้างอิง
https://www.docs.python.org/3/library/functions.html#getattr
https://www.programiz.com/python-programming/methods/built-in/getattr
https://www.stackoverflow.com/questions/4075190/what-is-getattr-exactly-and-how-do-i-use-it

  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 9 และ บุคคลทั่วไป 0 ท่าน