class Test:
def func():
print('func')
test1 = Test()
test2 = Test()
test1.func() #TypeError: fun1() takes no arguments (1 given)
test2.newfunc = Test.func
test2.newfunc()#It goes well
# update part
def foo(self):
pass
Test.foo = foo
test1.foo # it is bound method
test2.foo = foo
test2.foo # it is function
# end
這兩種方式有什麼區別嗎? 謝謝。蟒蛇功能
# update part
def foo(self):
pass
Test.foo = foo
test1.foo # it is bound method
test2.foo = foo
test2.foo # it is function
# end
請注意,重要的是檢索應該發生在類而不是實例。
它在我看來像你沒有掌握這個類的東西是如何工作的。你所做的只是沒有意義。如果你還沒有掌握它,Python手冊和教程是很好的東西。 – 2012-01-12 10:30:13
這是一種有趣的...我不知道爲什麼'test2.newfunc()'工作... – DonCallisto 2012-01-12 12:06:13
@羅曼的答案是完全正確的。當你做test2.newfunc = Test.Func時,你被「繞過」對象定義,並直接進入函數定義。所以,不需要參數。現在很清楚 – DonCallisto 2012-01-12 12:11:27