我正在使用一個python庫,我需要重寫其中一個函數。讓我們把這種 module.py如何覆蓋python庫的函數?
def dump(nodes, args = 'bleh'):
...validation checks
for node in nodes:
print(node, someother_args)
def print_node(node, someother_args):
...prints in some way i don't want
現在,我使用這個轉儲方式,我想用我自己的方法print_node覆蓋print_node功能,因爲我要打印以不同的方式。什麼是最好的方式來做到這一點?
注意,你已經與python2.7這個標記,並在2.7打印不是一個函數。你可以從你的文件的頂部導入print_function以改變它(它在python3中被改變爲一個函數,部分出於這個原因) –
這是可行的,但幾乎總是一個壞主意。 – user2357112
@ user2357112標題中的問題是一個糟糕的主意,但巴黎事實上試圖做的不是IMO。覆蓋默認函數可能會導致可維護性問題,但是想要自定義打印函數並不壞 - 我只是將它命名爲不同的東西,例如,打印和寫入日誌的print_and_log可能非常有用 –