Tôi có một chức năng mà tôi cần để tạo ra các chuỗi đầu ra khác nhau cho một chương trình khác mà tôi gọi, tùy thuộc vào loại nó muốn.Cách kinh điển xử lý các loại khác nhau trong Python là gì?
Về cơ bản, chương trình được gọi cần một đối số dòng lệnh cho biết loại được gọi với nó.
Hạnh phúc tôi tìm thấy this answer trên SO về cách kiểm tra biến cho loại. Nhưng tôi nhận thấy mọi người cũng phản đối như thế nào, việc kiểm tra các loại phản bội thiết kế "không hướng đối tượng". Vì vậy, là có một số cách khác, có lẽ nhiều hơn "hướng đối tượng" cách xử lý này mà không kiểm tra một cách rõ ràng cho loại?
Code tôi có bây giờ đi một cái gì đó như thế này:
def myfunc(val):
cmd_type = 'i'
if instance(val, str):
cmd_type = 's'
cmdline = 'magicprogram ' + cmd_type + ' ' + val
Popen(cmdline, ... blah blah)
...
mà làm việc tốt, nhưng tôi chỉ muốn biết nếu có một số kỹ thuật Tôi không biết.
Bạn chuyển mã nào bằng một loại trên dòng lệnh? – geoffspear
@Wobble, tôi đã thêm một ví dụ. Tôi nhận ra câu hỏi không rõ ràng lắm. Hy vọng nó là tốt hơn bây giờ. –
myfunc được gọi như thế nào? Tôi sẽ đề nghị có hai hàm khác nhau mà mong đợi một kiểu đối số khác, sau đó tạo một hàm riêng của phần dưới cùng của hàm mà bạn gọi với các đối số thích hợp từ mỗi hàm cũ. – teukkam