这是代码:
class Dummy(object):
def __init__(self, v):
self.ticker = v
def main():
def _assign_custom_str(x):
def _show_ticker(t):
return t.ticker
x.__str__ = _show_ticker
x.__repr__ = _show_ticker
return x
a = [Dummy(1), Dummy(2)]
a1 = [_assign_custom_str(t) for t in a]
print a1[1]
# print a1[1].__str__ # test to if orig __str__ is replaced
我希望看到这样的输出
2
但是,我看到的是标准表示形式:
<__main__.Dummy object at 0x01237730>
为什么?
魔术方法只有在类型而不是对象上定义时才能保证有效。
例如:
def _assign_custom_str(x):
def _show_ticker(self):
return self.ticker
x.__class__.__str__ = _show_ticker
x.__class__.__repr__ = _show_ticker
return x
但是请注意,这将影响所有Dummy
对象,而不仅仅是访问类的对象。
我正在努力找出导致这个问题的原因。我对Java和BlueJ完全陌生,但我已经研究了几个小时,无法找出问题的原因。不断收到错误消息“不兼容类型:泥水匠无法转换为学徒”。非常感谢您的帮助。 //程序的目的:创建一个混合阵列,以容纳两个不同的学徒对象——泥水匠和木匠//泥水匠和木匠//然后将每个对象的所有细节显示在屏幕上。 学徒班就是这样的
我创建了以下主题、流和表: 为以上创建的主题创建表和流。 我可以看到以下数据: 我的问题: 现在我要将addressId 1(Fremont)替换为addressId 1(Detroit)。我怎么能那样做? 我还尝试打印输入到控制台的流,如票证中所述 是否将Kafka流输入打印到控制台? 只是,我可以看到下面的输出: 12:04:42.145[StreamThread-1]DEBUG org.ap
我在我的单元测试中使用了sinon间谍。我正在测试的函数调用了一次间谍函数,但sinon坚持说它根本没有调用它。 正在测试的代码: 还有我的单元测试: 来自西农的消息: < li>draughts应检测显示方法:AssertError:预期displayBoard将被调用一次,但在object . assert .[as called once](node _ modules \ sinon \
问题内容: 我正在ClassA中调用构造函数,如果满足特定条件,则希望使结果对象属于其他类(ClassB)。我试着更换的第一个参数__init ()(在下面的例子中“自我”) 内 __init (),但它似乎并没有做我想做的。 在主要方面: 在ClassA / init.py中: 在ClassB / init.py中: 问题答案: 您需要。(并且您还需要通过子类化使其成为一种新型类,假设您使用的是
预计此函数将无法typeCheck。然而,没有解释发生这种情况的原因。在GHCI中试用时,我得到了以下输出: 为什么会出现这种情况?
我使用从iPython笔记本下载CSV时建议的代码动态构建javascript代码,并在从jupyter笔记本调用时使用python中的javascript()将其传递给浏览器。代码工作得很好。如果我在python函数中嵌入相同的代码,并从同一个jupyter笔记本调用python函数,那么python中的调用Javascript()将不再有效。如何使可重用功能正常工作? 我正在Windows 1