Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python2.7中,能否使_contains _uu super方法接受3个参数?_Python_Python 2.7 - Fatal编程技术网

在Python2.7中,能否使_contains _uu super方法接受3个参数?

在Python2.7中,能否使_contains _uu super方法接受3个参数?,python,python-2.7,Python,Python 2.7,我想让超级方法包含的的工作方式有所不同 我想让它成为一个两个整数。如果第一个整数小于该类的实例,而第二个整数大于该类的实例,则返回True。这是我的尝试 class test(object): def __init__(self, item): self.item= item def __contains__(self,other1,other2): if other1<self.item<other2: ret

我想让超级方法包含的的工作方式有所不同

我想让它成为一个两个整数。如果第一个整数小于该类的实例,而第二个整数大于该类的实例,则返回True。这是我的尝试

class test(object):
    def __init__(self, item):
        self.item= item
    def __contains__(self,other1,other2):
        if other1<self.item<other2:
            return True
        else:
            return False

x=test(5)

print 1 in x 
如您所见,我甚至不知道如何为contains方法设置3个参数。但是为了举例,我试着检查5是否在1和7之间


我知道我可以用我自己能做的方法来做这件事,但我想使用in关键字。

如果你想在
操作符中使用某种3参数
,你必须构建自己的经过深度修改的Python解释器,包括重写基本语法规则

不过,您可以很容易地获取元组:

class Blah(object):
    def __init__(self, val):
        self.val = val
    def __contains__(self, l):
        a, b = l
        return a < self.val < b

print (1, 3) in Blah(2)
类Blah(对象):
定义初始值(self,val):
self.val=val
定义包含(自我,l):
a、 b=l
返回a

这没有多大意义,但它是可行的。

如果您想在
操作符中使用某种3参数
,您必须构建自己的经过深入修改的Python解释器,包括重写基本语法规则

不过,您可以很容易地获取元组:

class Blah(object):
    def __init__(self, val):
        self.val = val
    def __contains__(self, l):
        a, b = l
        return a < self.val < b

print (1, 3) in Blah(2)
类Blah(对象):
定义初始值(self,val):
self.val=val
定义包含(自我,l):
a、 b=l
返回a
这没有多大意义,但它是可行的。

这些不是所谓的“超级方法”。常用的术语是“魔术法”或“特殊法”,而不是“超级法”。常用的术语是“魔术法”或“特殊法”。