我想使用一个对象,即使我不知道对象的名称。我尝试使用一个函数,它比较两个对象,看哪个对象的数量最大,但我希望能够将对象键入函数的参数中,然后函数进行比较,这样我就不必反复重复相同的代码。问题是,我不知道如何让函数中的一个参数说出要比较的对象。你知道吗
class tester:
myVar = None
def __init__(self, myVar):
self.myVar = myVar
# I am not going to make everything legitamite here
def compare(first, second):
# I want to make first = the first object i am comparing
# second = second object i am comparing
# I would then use it in a conditional
这可能不是最好的方法,如果有更好的方法,我很想知道。你知道吗
一种更简洁的方法是在类中定义
__cmp__()
方法。这样,就可以在类实例上使用标准比较运算符< == != >
等和内置的cmp()函数。另外,如果一个对象定义了__cmp__()
,那么当传递给max()
和sort()
这样的函数时,它的行为也会正常。(感谢EOL提醒我提到这一点)。你知道吗例如
输出
注意,我让tester从
object
继承,这使它成为new-style class。这不是绝对必要的,但它确实有各种好处。你知道吗我还删除了
myVar = None
class属性,正如EOL在注释中指出的那样,这是不必要的混乱。你知道吗你的意思是你想传递一个类的两个实例,然后比较它们的值。如果是这样的话,你可以简单地做如下:
相关问题 更多 >
编程相关推荐