Ngay bây giờ tôi có một lớp được gọi là A.Python, làm hàng nhập khẩu có điều kiện đúng cách
Tôi có một số mã như thế này ..
from my.package.location.A import A
...
foo = A.doSomething(bar)
này là rất tốt.
Nhưng bây giờ tôi có một phiên bản mới của A được gọi là A, nhưng trong một gói khác, nhưng tôi chỉ muốn sử dụng phiên bản A khác trong một kịch bản nhất định. Vì vậy, tôi có thể làm một cái gì đó như thế này:
if(OldVersion):
from my.package.location.A import A
else:
from new.package.location.A import A
...
foo = A.doSomething(bar)
Điều này làm việc tốt. Nhưng nó là xấu xí. Làm thế nào tôi có thể làm điều này tốt hơn? Tôi thực sự muốn làm điều gì đó như thế này
from my.abstraction.layer.AFactory import AFactory
...
myA = AFactory.giveMeA() # this looks at "OldVersion" and gives me the correct A
foo = myA.doSomething(bar)
có cách nào để tôi có thể làm điều đó dễ dàng hơn không? Không có lớp nhà máy? Điều này bây giờ có thể biến mọi cuộc gọi phương thức tĩnh trên lớp của tôi thành 2 dòng. Tôi luôn luôn có thể giữ một tài liệu tham khảo trong một lớp học để giảm tác động, nhưng im thực sự hy vọng python có một giải pháp đơn giản hơn.
Đó chính xác là cách Python "hoạt động" :) –