我无法运行此代码,因为我得到了异常:
NameError: name 'abstractmethod' is not defined
File "C:\Tests\trunk\PythonTests\AbstractClasses.py", line 12, in <module>
class MyIterable:
File "C:\Tests\trunk\PythonTests\AbstractClasses.py", line 15, in MyIterable
@abstractmethod
from abc import ABCMeta
class Foo(object):
def __getitem__(self, index):
print '__get_item__ Foo'
def __len__(self):
print '__len__ Foo'
def get_iterator(self):
print 'get_iterator Foo'
return iter(self)
class MyIterable:
__metaclass__ = ABCMeta
@abstractmethod
def __iter__(self):
while False:
yield None
def get_iterator(self):
return self.__iter__()
@classmethod
def __subclasshook__(cls, C):
if cls is MyIterable:
if any("__iter__" in B.__dict__ for B in C.__mro__):
print "I'm …Run Code Online (Sandbox Code Playgroud) 在MATLAB中,您可以返回元组并分配给值的元组,就像在Python中一样.在MATLAB中,如果函数返回一个您不想分配给任何值的值,则将其分配给特殊变量~.例如,假设一个函数f()返回一个元组(1, 2),那么:
~, b = f()
Run Code Online (Sandbox Code Playgroud)
分配2到b和1不了了之.
在Python中有相同的东西吗?我明白我可以这样做:
a, b = f()
Run Code Online (Sandbox Code Playgroud)
而忽略了价值,a但我更喜欢a完全跳过作业.重写功能f()不是一种选择.
如果我的Python术语错误,我道歉.