Trong Python, các hàm như str(), int(), float(), v.v. thường được sử dụng để thực hiện chuyển đổi loại. Tuy nhiên, những điều này yêu cầu bạn phải biết tại thời điểm phát triển loại bạn muốn chuyển đổi. Một bài toán con của một số mã Python mà tôi đang cố gắng viết như sau:Phản ánh và loại chuyển đổi Python
Cho hai biến, foo
và bar
, tìm loại foo
. (Nó không được biết tại thời điểm phát triển, vì đây là mã chung.) Sau đó, cố gắng chuyển đổi bar
thành bất kỳ loại foo
nào. Nếu điều này không thể được thực hiện, hãy ném một ngoại lệ.
Ví dụ: giả sử bạn gọi hàm thực hiện điều này conv
. chữ ký của mình sẽ như thế nào
def conv(foo, bar) :
# Do stuff.
Nó sẽ được gọi là một cái gì đó như:
result = conv(3.14, "2.718") # result is now 2.718, as a float.
Ấn tượng. Tôi đã không bao giờ nghĩ rằng nó sẽ là vô cùng dễ dàng. Cũng đáng ngạc nhiên (tôi mới sử dụng Python và được sử dụng để gần gũi hơn với các ngôn ngữ kim loại) là nó hoạt động với nội trang. – dsimcha
Không chính xác một phần. foo .__ class__ chỉ là loại foo nếu foo là một đối tượng kiểu mới. Nếu không, nó chỉ là lớp. –
Chỉ inasmuch không chính xác tôi đã nói 'loại' khi lớp học sẽ chính xác hơn. Nhưng anh ta cần lớp học để chuyển đổi này. Và trong Python 3, sự khác biệt là đi anyway. – oefe