我的代码:
import math
class Cal(object):
def __init__(self,precision):
self.precision=precision
def roundTo(self):
if(obj1):
return (round(math.pi,self.precision))
elif(obj2):
return (round(math.e,self.precision))
precision=int(raw_input("enter number:"))
obj1=Cal(precision)
answer1=obj1.roundTo()
print answer1
obj2=Cal(precision)
answer2=obj2.roundTo()
print answer2
我的问题是,我希望相同的方法在两个对象上返回两个不同的东西,具体取决于引用的对象。 有没有办法做到这一点:
def fun_name(self):
if(obj1):
#return
elif(obj2):
#return
我知道更简单的方法是创建两个不同的函数并将它们分配给单个对象。但有没有办法实现这个功能?
答案 0 :(得分:0)
尝试通过名称识别对象看起来像糟糕的设计,因为对象不知道自己的名字。看看为什么不可能:
# let's have two objects with two names
obj1 = Cal()
obj2 = Cal()
# you can swap names
obj1, obj2 = obj2, obj1
# you can have two equally valid names for the same object
obj3 = obj1
# you can reuse a name for something else
obj2saved = obj2
obj2 = None
# and you can have objects without a name
obj_set = { Cal(), Cal() }