I'm teaching a Python class on object-oriented programming and as I'm brushing up on how to explain classes, I saw an empty class definition:
class Employee:
pass
The example then goes on to define a name and other attributes for an object of this class:
john = Employee()
john.full_name = "john doe"
Interesting!
I'm wondering if there's a way to dynamically define a function for an instance of a class like this? something like:
john.greet() = print 'Hello, World!'
This doesn't work in my Python interpreter, but is there another way of doing it?
A class is more or less a fancy wrapper for a
dictof attributes to objects. When you instantiate a class you can assign to its attributes, and those will be stored infoo.__dict__; likewise, you can look infoo.__dict__for any attributes you have already written.This means you can do some neat dynamic things like:
as well as assigning to a particular instance. (EDIT: added
selfparameter)