|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- 1. 当实例对象进行加法操作时,会自动调用什么魔法方法?
- 答:对象 a 和 b 相加时(a + b),Python 会自动根据对象 a 的 __add__ 魔法方法进行加法操作。
- 2. 下边代码有问题吗?(运行起来似乎没出错的说^_^)
- class Foo:
- def foo(self):
- self.foo = "I love FishC.com!"
- return self.foo
- >>> foo = Foo()
- >>> foo.foo()
- 'I love FishC.com!'答:这绝对是一个温柔的陷阱,这种BUG比较难以排查,所以一定要注意:类的属性名和方法名绝对不能相同!如果代码这么写,就会有一个难以排查的BUG出现了。
- class Foo:
- def __init__(self):
- self.foo = "I love FishC.com!"
- def foo(self):
- return self.foo
- >>> foo = Foo()
- >>> foo.foo()
- Traceback (most recent call last):
- File "<pyshell#21>", line 1, in <module>
- foo.foo()
- TypeError: 'str' object is not callable
复制代码
我自己尝试了下 为什么没有报错
class Foo:
def __init__(self):
self.foo = "I love FishC.com!"
def foo(self):
return self.foo
>>> a = Foo()
>>> a.foo
'I love FishC.com!'
我的Python版本是3.5.2 求教
你写的是a.foo,而不是a.foo(),这里显示的是foo这个变量不是foo方法。
|
|