Ricardo Cárdenes đang đi đúng hướng. Trên thực tế, việc truy cập chức năng test
bên trongtest
sẽ phức tạp hơn rất nhiều. Các module inspect
sẽ giúp bạn có thêm, nhưng nó sẽ là xấu xí: Python code to get current function into a variable?
Khi nó quay ra, bạn có thể tham khảo test
bên trong hàm:
def test(arg1='foo'):
print test.__defaults__[0]
sẽ in ra foo
. Nhưng đề cập đến test
sẽ chỉ làm việc, miễn là test
là thực sự định nghĩa:
>>> test()
foo
>>> other = test
>>> other()
foo
>>> del test
>>> other()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in test
NameError: global name 'test' is not defined
Vì vậy, nếu bạn có ý định trên qua chức năng này xung quanh, bạn có thể thực sự phải đi con đường inspect
:(
Nguồn
2012-01-10 16:20:59
bạn có thể cung cấp một ví dụ chứng minh lý do tại sao bạn có thể muốn làm điều đó? – Kevin
Bạn có nghĩa là KHÔNG chỉ cần gõ 'arg1'? –
Nếu bạn không cung cấp 'arg1' khi gọi' test', thì 'arg1' sẽ mặc định thành' 'Foo'' – TyrantWave