Làm thế nào để đúng cách giải thích một dòng mã python?


0 Phiếu
Đã hỏi 23/5/2016 bởi SboroAll (280 điểm)
Tôi cần phải thực thi một dòng code python được nhập bởi người sử dụng. Nếu nó là một statement tôi muốn thực hiện nó, nhưng nếu nó là một biểu hiện, tôi muốn có kết quả để được trả lại và làm một số công cụ ưa thích với nó. Vấn đề là rằng python có hai chức năng khác nhau cho rằng, cụ thể là execeval. Hiện nay, tôi chỉ cố gắng để đánh giá chuỗi người dùng đã nhập. Nếu mà làm tăng một SyntaxError, điều này có thể chỉ ra rằng các chuỗi là một statement thay vào đó, vì vậy tôi cố gắng thực hiện nó.
try:
    result = eval(command, scope)
except SyntaxError:
    # Probably command is a statement, not an expression
    try:
        exec(command, scope)
    except Exception as e:
        return command + ' : ' + str(e)
except Exception as e:
    return command + ' : ' + str(e)
else:
    pass # Some fancy stuff
điều này cảm thấy khá hacky. Có một neater, hơn pythonic cách để làm điều này?

Xin vui lòng đăng nhập hoặc đăng ký để trả lời câu hỏi này.


ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...