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

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

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

User avatar
jirawoot
PHP VIP Members
PHP VIP Members
Posts: 1233
Joined: 17/06/2019 10:30 am

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

Post by jirawoot » 18/07/2019 4:44 pm

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

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

Code: Select all

getattr(object, name[, default])
ตัวอย่างโค้ด

Code: Select all

class preson():
    fristname='My'
    lastname='Python'
    age=23
    email ='ติดต่อทาง pm'
var_preson = getattr(preson,'email')
print(var_preson)
จากโค้ดด้านบนนะครับให้ทำการแสดงค่าตัวแปร email ใน class preson จึงได้ผลลัพธ์
Selection_035.png
Selection_035.png (7.34 KiB) Viewed 360 times
อีกตัวอย่าง

Code: Select all

class preson():
    fristname='My'
    lastname='Python'
    age=23
    email ='ติดต่อทาง pm'
    
for var_preson in dir(preson):
    print("preson.%s = %r" % (var_preson, getattr(preson, var_preson)))
จะได้ผลลัพธ์ดังนี้

Code: Select all

preson.__class__ = <class 'type'>
preson.__delattr__ = <slot wrapper '__delattr__' of 'object' objects>
preson.__dict__ = mappingproxy({'__module__': '__main__', 'fristname': 'My', 'lastname': 'Python', 'age': 23, 'email': 'ติดต่อทาง pm', '__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 = 'ติดต่อทาง pm'
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

Return to “Python Knowledge”

Users browsing this forum: No registered users and 9 guests