Python把類當做字典來訪問


定義一個類將它實例化,我們可以通過obj.屬性來訪問類的屬性,如果想獲取類的所有實例變量,我們可以使用obj.__dict__來訪問,如下:

class A:
	def __init__(self):
		self.a = 1
		self.b = 2


a = A()
print(a.__dict__)
# {'a': 1, 'b': 2}
#獲取變量a:
print(a.__dict__['a'])
# 1

如果我們想直接通過字典的方式訪問類,obj=A(),dict(obj)直接拿到類的所有實例變量,可以通過如下方式:

class A:
	def __init__(self):
		self.a = 1
		self.b = 2

	def keys(self):
		return ('a','b',)

	def __getitem__(self, item):
		return getattr(self, item)

a = A()
print(dict(a))
#輸出:{'a': 1, 'b': 2}

可以看到,通過定義keys方法能夠限制類的實例變量的輸出,用內置的dict方法就能把類轉換成一個普通的字典了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM