>>> class rec:pass
>>> rec.name='bob'
>>> rec.age=40
>>> print(rec.name)
bob
>>> print(rec.age)
40
>>> y=rec()
>>> x=rec()
>>> x.name,y.name
('bob', 'bob')
>>> x.name='sue'
>>> x.name,y.name
('sue', 'bob')
>>> rec.name,x.name,y,name
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
rec.name,x.name,y,name
NameError: name 'name' is not defined
>>> rec.name,x.name,y.name
('bob', 'sue', 'bob')
>>> rec.__dict__.keys()
dict_keys(['__module__', '__dict__', '__weakref__', '__doc__', 'name', 'age'])
>>> list(x.__dict__.keys())
['name']
>>> list(y.__dict__.keys())
[]
>>> x.__class__
<class '__main__.rec'>
>>> rec.__bases__
(<class 'object'>,)
>>> def uperName(self):
return self.name.upper()
>>> uperName(x)
'SUE'
>>> rec.method=uperName
>>> x.method()
'SUE'
>>> y.method()
'BOB'
>>> rec.method()
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
rec.method()
TypeError: uperName() missing 1 required positional argument: 'self'
>>> rec.method(x)
'SUE'
>>>