在Python中,用點號直接訪問對象屬性是一種常見的方式,例如obj.attribute
。而使用getattr(obj, 'attribute')
是一種更加靈活的方法,可以根據字符串傳遞屬性名來動態訪問對象的屬性。
主要區別在于:
直接訪問屬性更直觀,代碼更簡潔,但無法動態地傳遞屬性名稱。
使用getattr
函數可以動態地傳遞屬性名稱,這在某些場景下非常有用,比如在循環中根據不同屬性名訪問對象的屬性。
總的來說,如果屬性名稱是固定的,且不需要動態地傳遞,直接訪問屬性更方便;如果需要動態地傳遞屬性名稱,可以使用getattr
函數。