class Worker(object):
def factory(profession):
if profession == "Python Programmer":
return PythonProgramme()
if profession == "C Programmer":
return CProgrammer()
assert 0, "Error create: " + profession
factory = staticmethod(factory)
class PythonProgramme(Worker):
def work(self):
print("Python Programmer")
class CProgrammer(Worker):
def work(self):
print("C Programmer")
# Create objects using factory method
py = Worker.factory("Python Programmer")
py.work()
c = Worker.factory("C Programmer")
c.work()
'''
run:
Python Programmer
C Programmer
'''