Bạn không thể sử dụng câu lệnh from __future__ import
trong các mẫu Mako. Ở tất cả.
này là do một mẫu Mako được biên dịch vào một tập tin python, và trong trật tự để làm việc này nó thiết lập một số cấu trúc ban đầu ở phía trên cùng của tập tin đó python:
# -*- encoding:ascii -*-
from mako import runtime, filters, cache
UNDEFINED = runtime.UNDEFINED
__M_dict_builtin = dict
__M_locals_builtin = locals
_magic_number = 7
_modified_time = 1348257499.1626351
_template_filename = '/tmp/mako.txt'
_template_uri = '/tmp/mako.txt'
_source_encoding = 'ascii'
_exports = []
Chỉ sau này thiết lập ban đầu là bất kỳ mã nào từ chính mẫu được bao gồm. from __future__ import division
của bạn sẽ không bao giờ được đặt trước.
Bạn vẫn có thể sử dụng phân dấu chấm động bằng cách đúc một trong hai toán hạng của toán tử /
phân chia đến một float:
>>> 1/2
0
>>> float(1)/2
0.5
Chừng nào bạn làm theo cách giải quyết mà bạn có thể làm tốt mà không có việc nhập khẩu trong tương lai division
.
Nguồn
2012-09-21 20:03:28
Có, tôi thấy điều này từ gỡ lỗi (và rằng lỗi là trên dòng 17), nhưng Mike Bayer (techspot.zzzeek.org) là rất thông minh, tôi nghĩ rằng ông đã có một chỗ ở cho nó. Ngoài ra, 'phân chia' không phải là nhập khẩu tương lai duy nhất (' with' xuất hiện trong tâm trí). Tôi đã sử dụng 'float()' trước khi tôi thử điều này. – Hollister
Bạn sẽ phải đưa vào một yêu cầu tính năng để có các câu lệnh 'from __future__ with' được chuyển lên đầu của đầu ra python cho mẫu. Nhưng khi nhập khẩu như vậy có thể thay đổi giàn giáo mẫu có nghĩa là quá, tôi không chắc chắn đó sẽ là một ý tưởng tốt và được chấp nhận bởi Mike Bayer hoặc các nhà bảo trì Mako khác. –