IronPython 奇怪的方法调用
IronPython strange method calling
为什么在 ironPython 中调用这样的方法有效?:
from System.Collections.Generic import List
class test:
mem = None
def __init__(self):
# !No Instance created !!!
self.mem = List[int]
def doSomeThing(self):
if self.mem.Contains((List[int](), 123):
pass
在这种情况下我无法获得 IronPython 的行为:self.mem.Contains((List[int](), 123):
。有人对此有解释吗?
编辑
难道self.mem
只是类型,Contains
永远是returnFalse
?如果这是真的,这似乎是一个不错的功能:)
谢谢!
正常情况下也是如此 Python 类:
class Foo(object):
def bar(self):
pass
f = Foo
f.bar(Foo())
这是绑定 (Foo().bar
) 和未绑定 (Foo.bar
) 方法之间的区别。 Python.
中方法的实现方式与其说是一个功能,不如说是一个副作用
Contains
始终为假,因为它正在处理一个空列表,其中不包含任何内容。
为什么在 ironPython 中调用这样的方法有效?:
from System.Collections.Generic import List
class test:
mem = None
def __init__(self):
# !No Instance created !!!
self.mem = List[int]
def doSomeThing(self):
if self.mem.Contains((List[int](), 123):
pass
在这种情况下我无法获得 IronPython 的行为:self.mem.Contains((List[int](), 123):
。有人对此有解释吗?
编辑
难道self.mem
只是类型,Contains
永远是returnFalse
?如果这是真的,这似乎是一个不错的功能:)
谢谢!
正常情况下也是如此 Python 类:
class Foo(object):
def bar(self):
pass
f = Foo
f.bar(Foo())
这是绑定 (Foo().bar
) 和未绑定 (Foo.bar
) 方法之间的区别。 Python.
Contains
始终为假,因为它正在处理一个空列表,其中不包含任何内容。