so farso good in the following casehoweverit gets tricky and we have to program carefully in order to avoid bugs annesacc num_of_accounts account num_of_accounts annesacc num_of_accounts stefansacc num_of_accounts in line we assign new instance attribute to the annesacc object it just happens to have the same name as the class attribute the following image shows that nowthe annesacc object has an attribute called num of accounts (this attribute happens to have the value howeverthe class attribute still resides in account class objectand has the value when trying to access the num of accounts attribute of the instance objects or the class objectwe now get different results while account num of accounts and stefansacc num of accounts still refer to the class attributeannesacc num of accounts refer to the new instance attribute of this object an easy way to avoid this pitfall is to give distinct names to your class attributes and never use the same names for instance attributes static methods belong to class so farwe have only seen instance methodswhich we define inside classbut which we can only call 'on an object' when particular instance is involved class can also have methods that do not involve particular instancesbut which are called on the class object ( see line such methods are called static methods when defining static methodwe need to write @staticmethod in the line before the def statement for the respective method @staticmethod is decorator for nowyou can imagine that it is special message you pass to pythonhere telling it that the method you are defining belongs to the class (not to particular objects created from the classthe method also does not have the self parameter like the instance methods we have seen before annemarie friedrichcis lmu munchenws /