I'm including code, for cut/paste, to better explain my question. I create a Car object then I call some of its methods. No problem. Then I try to pass, to a function, the name of the Car object and the name of one of its methods. I found one way to get this to work but can someone show me a more orthodox way? Is there a way using references to the object and somehow the method?
Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32
IDLE 0.8
class Car:
def __init__(self):
self.milesperga llon=25.0
self.gas=20
self.travelled= 0
def drive(self, miles):
self.travelled= self.travelled+ miles
self.gas=self.g as-(miles/self.milesperga llon)
# a test
carObjA=Car() ; carObjA.drive(1 00) ; print carObjA.gas 16.0
# Next, trying to pass object and method "references ", to someFuncA
def someFuncA(objAr g1,strArg2):
print carObjB.strMeth B
carObjB=carObjA ; strMethB="gas" ; someFuncA(carOb jB,strMethB) Traceback (most recent call last):
File "<pyshell#1 6>", line 1, in ?
someFuncA(carOb jB,strMethB)
File "<pyshell#1 5>", line 2, in someFuncA
print carObjB.strMeth B
AttributeError: Car instance has no attribute 'strMethB'
# Next, trying to pass object and method "references ", to someFuncB
def someFuncB(strAr g1,strArg2):
e = "print " + strArg1 + "." + strArg2
exec e
strObjB="carObj A" ; strMethB="gas" ; someFuncB(strOb jB,strMethB)
16.0
# That worked but is there a more orthodox way to pass these "references "?