Trong tài liệu Python và trên mailing list Tôi thấy rằng giá trị đôi khi "diễn viên", và đôi khi "ép buộc". Sự khác biệt là gì?Đúc vs ép buộc bằng Python
Trả lời
Tôi nghĩ rằng "đúc" nên không được sử dụng cho Python; chỉ có loại chuyển đổi, nhưng không có phôi (theo nghĩa C). Chuyển đổi loại được thực hiện, ví dụ: thông qua trong đó đối tượng o được chuyển đổi thành một số nguyên (thực tế, một đối tượng số nguyên được tạo ra từ o). Coercion xảy ra trong trường hợp hoạt động nhị phân: nếu bạn thực hiện x+y
và x và y có các loại khác nhau, chúng được ép buộc thành một loại duy nhất trước khi thực hiện thao tác. Trong 2.x, một phương thức đặc biệt __coerce__
cho phép đối tượng kiểm soát sự ép buộc của chúng.
Truyền rõ ràng. Coerce là ẩn.
Các ví dụ bằng Python sẽ là:
cast(2, POINTER(c_float)) #cast
1.0 + 2 #coerce
1.0 + float(2) #conversion
Cast thực sự chỉ đi lên trong thư mục C FFI. Những gì thường được gọi là đúc trong C hoặc Java được gọi là chuyển đổi trong python, mặc dù nó thường được gọi là đúc vì tương đồng của nó với những ngôn ngữ khác. Trong khá nhiều ngôn ngữ mà tôi có kinh nghiệm (bao gồm cả python) Coercion là loại thay đổi ngầm định.
- 1. WPF Buộc MouseDevice được ép
- 2. Bao gồm mô-đun, ép buộc
- 3. ép buộc lên vị trí số
- 4. Máy ép chính trong Python
- 5. Ép buộc đầu ra tiêu chuẩn của một chương trình khác được unbuffered bằng cách sử dụng Python
- 6. Đúc một int vào một chuỗi bằng Python
- 7. TypeError (Chuỗi không thể bị ép buộc vào Fixnum)?
- 8. BigDecimal không thể bị ép buộc thành BigDecimal
- 9. Thời gian ép buộc của các kiểu chung trong F #
- 10. Con trỏ.getString() ép buộc một int vào một chuỗi?
- 11. đúc các chuỗi thô python
- 12. Java SOAP "wsimport" - ép buộc ràng buộc từ tài liệu/chữ bọc WSDL?
- 13. Buộc đẩy bằng SourceTree
- 14. FormSet sử dụng TypedChoiceField không bị ép buộc để int một lần ~ 2000 yêu cầu
- 15. Gtk + vs ràng buộc ngôn ngữ Qt
- 16. Làm thế nào tôi có thể ép buộc Phiên bản PHP cho Dòng lệnh?
- 17. Hibernate HQL đúc: java.lang.String không thể được đúc để java.lang.Enum
- 18. làm thế nào để ép buộc để làm mới giá trị của mô hình trong yii
- 19. Chọn đối tượng bằng cách đúc ray
- 20. Python - doctest vs. unittest
- 21. Python: OpenMPI Vs. RabbitMQ
- 22. python 2.7 vs python 3.1
- 23. Làm thế nào để ép buộc quá tải hàm mẫu cho tăng :: liên kết?
- 24. Python SciPy convolve vs fftconvolve
- 25. Ràng buộc cổng Python
- 26. Orange vs NLTK để phân loại nội dung bằng Python
- 27. ép buộc một đầu ra nhiều trong một dataframe mới sử dụng ddply
- 28. vấn đề ép buộc gumpy đối với nhà điều hành nhị phân bên trái
- 29. Ép buộc thực hiện các sự kiện trong các lớp trừu tượng bắt nguồn
- 30. Dự án VS ràng buộc làm gì?
-1. Đó là danh pháp C++; Python sử dụng các thuật ngữ khác nhau. – SamB
+1: Đối với câu hỏi này, ví dụ là hoàn toàn hợp lệ. Và nó được đánh dấu rõ ràng là C++. – user183037
Câu hỏi đặt ra là cụm từ 'đúc' trong ngữ cảnh của ngôn ngữ Python. Câu trả lời giải thích rằng 'float (1)' là xây dựng, không đúc, là tốt hơn. –