2009-04-20 42 views
9

Bạn có thể giải thích về trạng thái hiện tại của "các khối" (theo nghĩa Ruby) trong Python không?Các khối mã trong python

Cấu trúc ngôn ngữ tồn tại trong python là gì? Làm thế nào để họ so sánh với các ngôn ngữ khác (như Ruby, Smalltalk, [chèn thêm])? Hay python thiếu cấu trúc như vậy?

Tôi đã hiểu điều này lambda; nó chỉ là một dòng, nhưng có lẽ nó đến gần. Còn "trang trí" và yield trong ngữ cảnh này thì sao?

Tôi cũng đang sử dụng phiên bản Python cũ trong một số dự án. Cấu trúc nào được giới thiệu trong phiên bản Python nào (2.5.2.6, ...) hoặc được lên kế hoạch trong các phiên bản sau?

Bạn có thể liên kết các bài viết thú vị về chủ đề giải thích công cụ này cho Python và cũng so sánh với các ngôn ngữ khác và có thể thú vị cho những ai muốn mở rộng kiến ​​thức cơ bản về Python.

Và vui lòng sửa câu hỏi này thành ngôn ngữ phù hợp bằng tiếng Anh và tiếng Anh thích hợp.

[sửa] Tôi chấp nhận câu trả lời chỉ trong 2 giờ hoàn toàn thay đổi kiểu mã hóa của tôi. Tôi không biết nó đơn giản như thế. Tôi cũng đánh giá cao các liên kết bạn đã cho, cảm ơn bạn rất nhiều. [/ Sửa]

+0

Tôi có nên đặt wiki cộng đồng (cw) không? Tôi không hiểu ý nghĩa của cw. – user89021

+0

Wiki cộng đồng có nghĩa là ngưỡng chỉnh sửa thấp hơn nhiều (750 rep so với 2000) và không ai kiếm được đại diện cho câu hỏi hoặc câu trả lời. Nó thường được sử dụng cho câu hỏi faq hoặc cho câu hỏi "vui vẻ". Đây chỉ là một câu hỏi bình thường, do đó, không làm cho nó cw. –

Trả lời

9

chức năng là những thành viên đầu tiên hạng nhất trong python

def add(x, y): 
    return x + y 

a = add   # bind 
b = a(34, 1)  # call 

để bạn có thể vượt qua chức năng xung quanh tất cả các bạn muốn. bạn có thể làm tương tự với bất kỳ đối tượng có thể gọi nào trong python.

+0

điều này thật tuyệt, cảm ơn bạn, vui lòng đọc thêm phần chỉnh sửa từ câu hỏi của tôi – user89021

2

lambda tương đương gần nhất với khối Ruby và giới hạn đối với một dòng is intentional. Nó thường được lập luận rằng các hàm ẩn danh đa cấp (các khối, trong Ruby) là thường là ít hơn ít có thể đọc được hơn là xác định hàm ở đâu đó với tên và truyền đi, như được minh họa trong SilentGhost's answer.

0

Các def là tương đương với một câu lệnh gán mà chỉ ràng buộc chức năng đối tượng với biến tham chiếu đối tượng.

Biến tham chiếu đối tượng sau đó có thể được sử dụng để gọi đối tượng hàm để thực thi.

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