2009-10-23 41 views
21

Có cách nào để dán một khối mã vào IDLE không? Dán dòng theo công trình, nhưng đôi khi tôi muốn dán nhiều dòng cùng một lúc. Khi tôi thử, IDLE đọc dòng đầu tiên và bỏ qua phần còn lại.Dán nhiều dòng vào IDLE

>>> a = 1 
b = 2 
c = 3 

>>> 
>>> a 
1 
>>> b 

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    b 
NameError: name 'b' is not defined 

Trả lời

21

Có lẽ không phải là thủ tục đẹp nhất, nhưng hoạt động này:

cmds = ''' 

dán lệnh của bạn, tiếp theo là ''':

a = 1 
b = 2 
c = 3 
''' 

Sau đó exec(cmds) sẽ thực hiện chúng.

Hoặc trực tiếp hơn,

exec(''' 

sau đó dán lệnh của bạn, tiếp theo là '''):

a = 1 
b = 2 
c = 3 
''') 

Nó chỉ là một thủ thuật, có thể có một quan chức hơn, cách thanh lịch.

+1

mà làm việc, nhưng tôi đã thực sự hy vọng cho một cái gì đó tao nhã hơn. Nó khá phổ biến để dán một loạt các dòng vào IDLE. Kiểm tra các phần mã từ một IDE hoặc các công cụ đang chạy được đăng trên SO hoặc bất kỳ thứ gì. – foosion

+1

Có, tôi thường chạy vào cùng một vấn đề và tự hỏi mình cùng một câu hỏi ... Tương tự xảy ra khi dán phần thụt lề của mã, "đã giải quyết" bằng cách nhập 'if True:' rồi dán mã. Một chút lừa bẩn ;-) – RedGlyph

+0

sử dụng pyscripter .. sao chép mã từ bất cứ nơi nào nói một hàm ... và sau đó nhấp chuột phải vào trình thông dịch ... chọn "dán và thực thi". và điều này sẽ làm việc độc đáo cho dán nhiều lớp. – ihightower

6

IdleX cung cấp tiện ích PastePyShell.py cho IDLE cho phép dán nhiều dòng vào trong trình bao để thực thi.

Các vấn đề liên quan