Cách sử dụng dấu gạch nối trong Python
Nó bao gồm một số tập lệnh dòng lệnh - được xác định trong phần thiết lập. py (tôi biết, lỗi thời) như vậy Show
Điều này đã hoạt động tốt trong suốt một vài năm cập nhật Python và setuptools Nhưng bỗng nhiên hôm nay ( Trăn 3. 9. 12, công cụ thiết lập 63. 2. 0), tôi nhận được khi cố chạy tập lệnh
WTF? Tôi biết rằng trong nhiều năm, hệ sinh thái đã muốn sử dụng dấu gạch ngang, thay vì dấu gạch dưới, cho một số loại đặt tên gói (phân phối) được chuẩn hóa. Tôi KHÔNG BAO GIỜ hiểu điều đó - bạn không thể có dấu gạch nối trong tên gói có thể nhập - tại sao bạn lại muốn có một dấu gạch nối trong tên trong PyPi? Dù sao đi nữa, tôi có thể thấy việc thay thế dấu gạch ngang bằng dấu gạch dưới một cách tự động, nhưng tại sao nó lại diễn ra theo cách khác? VÌ THẾ
Cuối cùng. Bước tiếp theo của tôi là cài đặt lại mọi thứ từ đầu và xem liệu đây có phải là một kết quả kỳ lạ nào đó vô tình được đưa vào bởi một số bản cập nhật ngoài hệ thống hay không – nhưng nó thực sự, thực sự kỳ lạ
Đây là mối quan tâm của tôi - tên có dấu gạch nối không phải là dấu hiệu nhận dạng trăn hợp pháp. Vì vậy, nó không thể là tên "gói" - ít nhất là trong định nghĩa của "gói python" - nó có thể (và rõ ràng là chính thức) là tên "phân phối" - trong đó "phân phối" là thứ mà người ta cài đặt (thường là từ PyPi Sự khác biệt này đặc biệt rõ ràng với “mọi thứ” (không chắc nên sử dụng từ nào) với các tên phân biệt rõ ràng cho bản phân phối và gói python – e. g
sau đó
và trên thực tế, vì một bản phân phối có thể cài đặt nhiều hơn một gói python, đây là một điểm khác biệt khá quan trọng Tất cả điều này là phần giới thiệu về ý tưởng rằng trong khi tôi vẫn còn bối rối về lý do tại sao bất kỳ tên chuẩn hóa nào cũng sẽ bao gồm dấu gạch dưới - điều cực kỳ quan trọng là tên gói python không bao gồm chúng - vậy tại sao trình bao bọc tập lệnh (hoặc đặc tả) lại sử dụng chúng ?? Một lần nữa, đây có thể là lỗi do thứ gì đó không đồng bộ trong cài đặt của tôi – và tôi sẽ điều tra vấn đề đó ngay bây giờ – nhưng nếu không – đây là vấn đề cần đưa ra khi phát triển công cụ thiết lập, đúng không? Mô-đun dictools chứa một danh sách không đầy đủ các chuỗi ngôn ngữ có sẵn có thể được sử dụng để khởi tạo các đối tượng Dấu gạch nối như minh họa ở trên >>> from hyphen import dictools >>> dictools.LANGUAGES ['af_ZA', 'an_ES', 'ar', 'be_BY', 'bg_BG', 'bn_BD', 'br_FR', 'ca', 'cs_C Z', 'da_DK', 'de', 'el_GR', 'en', 'es_ES', 'et_EE', 'fr_FR', 'gd_GB', 'gl', 'gu_ IN', 'he_IL', 'hi_IN', 'hr_HR', 'hu_HU', 'it_IT', 'ku_TR', 'lt_LT', 'lv_LV', 'ne _NP', 'nl_NL', 'no', 'oc_FR', 'pl_PL', 'prj', 'pt_BR', 'pt_PT', 'ro', 'ru_RU', ' si_LK', 'sk_SK', 'sl_SI', 'sr', 'sv_SE', 'sw_TZ', 'te_IN', 'th_TH', 'uk_UA', 'zu _ZA'] Các tệp từ điển đã tải xuống được lưu trữ trong một thư mục dữ liệu cục bộ, cùng với một từ điển. json liệt kê các tệp đã tải xuống và các ngôn ngữ được liên kết $ ls ~/.local/share/pyhyphen dictionaries.json hyph_de_DE.dic hyph_en_US.dic $ cat ~/.local/share/pyhyphen/dictionaries.json { "de": { "file": "hyph_de_DE.dic", "url": "http://cgit.freedesktop.org/libreoffice/dictionaries/plain/de/hyph_de_DE.dic" }, "de_DE": { "file": "hyph_de_DE.dic", "url": "http://cgit.freedesktop.org/libreoffice/dictionaries/plain/de/hyph_de_DE.dic" }, "en_PH": { "file": "hyph_en_US.dic", "url": "http://cgit.freedesktop.org/libreoffice/dictionaries/plain/en/hyph_en_US.dic" }, "en_US": { "file": "hyph_en_US.dic", "url": "http://cgit.freedesktop.org/libreoffice/dictionaries/plain/en/hyph_en_US.dic" } } Mỗi mục từ điển. json chứa cả đường dẫn đến tệp từ điển và url mà nó được tải xuống từ đó Bạn có thể sử dụng dấu gạch nối trong Python không?Các gói và mô-đun Python không thể sử dụng dấu gạch ngang , chỉ có dấu gạch dưới. Phần này của PEP-8 cung cấp cho chúng tôi hướng dẫn. Tên gói và mô-đun. Các mô-đun nên có tên ngắn, toàn chữ thường. Dấu gạch dưới có thể được sử dụng trong tên mô-đun nếu nó cải thiện khả năng đọc.
Bạn có thể sử dụng dấu gạch nối trong tên biến Python không?Tên biến không hợp lệ trong Python
. Nếu chúng tôi làm bất kỳ điều nào trong số này, mã của chúng tôi sẽ tạo ra lỗi. We cannot use a dash (-) to separate words in a variable name. If we do any of these, our code will generate an error.
Dấu gạch nối có thể được sử dụng trong các biến không?Bạn có thể sử dụng dấu gạch nối trong tên biến máy chủ . SQL diễn giải dấu gạch nối được bao quanh bởi khoảng trắng dưới dạng toán tử trừ. |