>>> class Foo:
... f=print
...
>>> Foo.f(2)
2
>>> Foo().f(2)
2
>>> def f(*args): print(*args)
...
>>> class Foo:
... f=f
...
>>> Foo.f(2)
2
>>> Foo().f(2)
<__main__.Foo object at 0x7b16f5e810> 2
Is there any difference between f and print? Is this a bug?