so from abovewe can see it' not possible to set any attributes on an object that was instantiated directly when python allows an object to have arbitrary attributesit takes certain amount of system memory to keep track of what attributes each object hasfor storing both the attribute name and its value even if no attributes are storeda certain amount of memory is allocated for potential new attributes so python disables arbitrary properties on object and several other built-insby default empty objects class empobjectpass obj empobject(obj 'helloworld!obj 'helloworld!henceif we want to group properties togetherwe could store them in an empty object as shown in the code above howeverthis method is not always suggested remember that classes and objects should only be used when you want to specify both data and behaviors tuples tuples are similar to lists and can store elements howeverthey are immutableso we cannot addremove or replace objects the primary benefits tuple provides because of its immutability is that we can use them as keys in dictionariesor in other locations where an object requires hash value tuples are used to store dataand not behavior in case you require behavior to manipulate tupleyou need to pass the tuple into function(or method on another objectthat performs the action as tuple can act as dictionary keythe stored values are different from each other we can create tuple by separating the values with comma tuples are wrapped in parentheses but not mandatory the following code shows two identical assignments stock 'msft' stock ('msft' type (stock type(stock stock =stock true