Dưới đây là một ví dụ ngắn gọn:Hàm imp.reload() của Python không hoạt động?
x.py:
class x:
var = 'from x.py'
y.py:
class x:
var = 'from y.py'
test.py
import imp
def write_module(filename):
fp = open('z.py', 'w')
fp.write(open(filename).read())
fp.close()
write_module('x.py')
import z
print(z.x.var) # Prints 'from x.py'
write_module('y.py')
imp.reload(z)
print(z.x.var) # Prints 'from x.py'
Tôi không chắc chắn lý do tại sao cả báo cáo in là như nhau. Làm thế nào tôi có thể làm cho python sử dụng định nghĩa mới của lớp x sau khi tải lại()?
Bạn cũng có thể xóa tệp '.pyc', tệp này sẽ buộc Python biên dịch lại mô-đun. – katrielalex