'dict' Values are Objects

Q

Are "dict" values objects in Python?

✍: FYIcenter.com

A

Yes, "dict" values are objects in Python. In fact, all data values in Python are objects.

In Python, "dict" is defined as an object class with the following interesting properties, constructors, and methods:

dict.__doc__ - Property holding a short description of "dict" objects.

dict.__new__() - Constructor returning a "dict" object. It can be invoked as dict(). For example:

>>> dict.__new__(dict)
{}
>>> dict()
{}
>>> dict({"Name":"Joe", "Age":25})
{'Name': 'Joe', 'Age': 25}
>>> dict(Name="Joe", Age=25)
{'Name': 'Joe', 'Age': 25}

dict.__getitem__() - Instance method for the [] operation, returning item of the dictionary with the given name. For example:

>>> {"Name":"Joe", "Age":25}.__getitem__("Age")
25
>>> {"Name":"Joe", "Age":25}["Age"]
25

dict.__len__() - Instance method returning the number name value pairs in the dictionary. It can be invoked as len(dict). For example:

>>> {"Name":"Joe", "Age":25}.__len__()
2
>>> len({"Name":"Joe", "Age":25})
2

dict.keys() - Instance method returning a new "dict_keys" object representing a list of key names in the dictionary. For example:

>>> {"Name":"Joe", "Age":25}.keys()
dict_keys(['Name', 'Age'])
>>> type({"Name":"Joe", "Age":25}.keys())
<class 'dict_keys'>

You can use the dir(dict) function to see all members of the "dict" class:

>>> dir(dict)
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', 
'__doc__' , '__eq__', '__format__', '__ge__', '__getattribute__', 
'__getitem__', '__gt__',  '__hash__', '__init__', '__init_subclass__', 
'__iter__', '__le__', '__len__', ' __lt__', '__ne__', '__new__', 
'__reduce__', '__reduce_ex__', '__repr__', '__seta ttr__', '__setitem__', 
'__sizeof__', '__str__', '__subclasshook__', 'clear', 'co py', 'fromkeys', 
'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update ', 'values'] 

 

Expressions, Variables and Assignment Statements

'list' Values are Objects

Understanding Data Values as Objects

⇑⇑ Python Tutorials

2023-07-01, 1265🔥, 0💬