Page 1 of 1

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

Posted: 18/07/2019 4:44 pm
by jirawoot
ฟังก์ชั่น 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 ='Mypython@gmail.com'
var_preson = getattr(preson,'email')
print(var_preson)

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


อีกตัวอย่าง

Code: Select all

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)))

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

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': '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