2012-04-13 25 views
33

Tôi đang sử dụng trăn 3.2.2. Khi tôi viết một chương trình đơn giản, tôi gặp vấn đề.TênError: tên 'tải lại' không được xác định

>>> reload(recommendations) 
Traceback (most recent call last): 
    File "<pyshell#6>", line 1, in <module> 
    reload(recommendations) 
NameError: name 'reload' is not defined 

Tôi nên làm như thế nào?

+7

Một "chương trình đơn giản" có thể không cần 'tải lại'. – geoffspear

+0

Tôi muốn sử dụng "tải lại (đề xuất)", "recommendations.abc()". Nhưng nó không thể tìm thấy các khuyến nghị – MindHacks

+0

@MindHacks Nếu bạn chưa nhập đề xuất, bạn không tải lại, bạn hãy nhập nó. '' import recommendations''. Tại sao bạn nghĩ bạn cần sử dụng '' reload() ''? –

Trả lời

82

Bạn có thể muốn importlib.reload().

from importlib import reload 

Trong Python 2.x, đây là một builtin, nhưng trong 3.x, đó là trong module importlib.

Lưu ý rằng việc sử dụng reload() bên ngoài trình thông dịch nói chung là không cần thiết, bạn đang cố gắng làm gì ở đây?

+0

Cảm ơn bạn, nó hoạt động. Nhưng nếu tôi muốn sử dụng tải lại, tôi phải nhập tệp mỗi lần? – MindHacks

+0

@MindHacks: Bạn đang nói về "tệp" nào? –

+0

@Sven Marnach: imp ... – MindHacks

6

Bản cập nhật cho câu trả lời của @Gareth Latty. imp được khấu hao bằng Python 3.4. Bây giờ bạn muốn importlib.reload().

from importlib import reload 
Các vấn đề liên quan