Trong bài đăng này, tôi sẽ giải thích về các điểm vào trong Python. Hầu hết mọi người biết điểm vào là đoạn mã nhỏ mà bạn đặt trong tệp ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()7 của mình để làm cho gói của bạn có sẵn dưới dạng tập lệnh trên dòng lệnh, nhưng chúng có thể được sử dụng cho nhiều mục đích khác. Tôi sẽ chỉ cho bạn cách sử dụng các điểm vào làm kiến trúc trình cắm mô-đun. Điều này cực kỳ hữu ích nếu bạn muốn cho phép người khác viết các gói Python tương tác hoặc thêm khả năng vào gói Python hiện tại của bạn khi chạy
!! WARNING: TERRIBLE HUMOR AHEAD !!Snek, IncXin chúc mừng. Bạn vừa được bổ nhiệm làm Giám đốc điều hành của “Snek Semiconductors and Software, Incorporated”. Rõ ràng, công việc đầu tiên của bạn với tư cách là Giám đốc điều hành là hướng dẫn bộ phận R&D của bạn phát triển một nguyên mẫu snek càng sớm càng tốt. Và vì vậy, họ bắt tay vào việc, viết ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()8
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()Nguyên mẫu của họ đã được trưng bày tại ngày demo của công ty và nó đã hoạt động
$ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`SaaS - Lén lút như một dịch vụThật không may, khách hàng không biết về Python (ngoại trừ snek). Họ muốn dễ dàng truy cập snek từ bất kỳ đường dẫn nào trong vỏ mà không cần phải lo lắng về điều ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()9 này hoặc tìm thấy ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()8. Vì vậy, các cô gái ở phòng R&D đã làm việc cả đêm và nghĩ ra cách đóng gói snek theo cách tự động tạo tập lệnh bảng điều khiển khi nó được cài đặt. Khi bạn tạo bản phân phối cho gói Python, bạn cần có tệp ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()7 chứa tên gói, phần phụ thuộc, v.v. Nó cũng có thể được sử dụng để đăng ký điểm vào và nó trông như thế này
________số 8Họ nói rằng $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`2 là một loại điểm vào đặc biệt. $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`3 đọc nội dung của nó là $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`4 và tạo tập lệnh thích hợp khi gói của bạn được cài đặt. Ngay bây giờ, họ đang cài đặt nó từ nguồn
!! WARNING: TERRIBLE HUMOR AHEAD !!2Tại bài phát biểu quan trọng trong hội nghị SnekCon được đánh giá cao (vé đã bán hết trước sáu tháng), bạn bước lên sân khấu và trình diễn nó trước sự ngạc nhiên của cả thế giới
!! WARNING: TERRIBLE HUMOR AHEAD !!3Snek cho mọi ngườiMọi người đều yêu thích snek. “Snek Semiconductors and Software, Incorporated” đã IPO và được định giá hơn 60 tỷ đô la. Hipsters đang yêu cầu một phiên bản snek huyền ảo hơn. Và nhóm R&D của bạn cung cấp
!! WARNING: TERRIBLE HUMOR AHEAD !!4Họ đã thêm một snek ưa thích. Bây giờ các hipster đang hạnh phúc
!! WARNING: TERRIBLE HUMOR AHEAD !!5Cộng đồng quốc tế SnekHàng triệu người trên khắp thế giới đang sử dụng snek. Ngay cả sau khi mua lại Google, “Snek Semiconductors and Software, Incorporated” vẫn không thể theo kịp nhu cầu ngày càng tăng đối với ngày càng nhiều phiên bản của snek. Khách hàng chuyên nghiệp đang yêu cầu một phiên bản snek có thể tùy chỉnh. Họ muốn tạo snek của riêng mình trên cơ sở hạ tầng snek. R&D hoạt động tốt hơn
!! WARNING: TERRIBLE HUMOR AHEAD !!6Họ đã thêm cơ sở hạ tầng cho snek tùy chỉnh. Bất cứ khi nào $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5 được chạy, nó sẽ tìm kiếm các snek khác đã đăng ký bằng cách sử dụng một điểm vào có tên là $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`6. Mỗi snek là một chuỗi được đăng ký dưới một tên loại. Tên đó có thể được sử dụng với tập lệnh bảng điều khiển để tự động in một snek tùy chỉnh
Đặc biệt, điều kỳ diệu xảy ra trong $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`7. Cuộc gọi đến $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`8 lặp lại trên tất cả các điểm vào đã được đăng ký dưới tên $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`9. Vì vậy, các gói bên ngoài có thể xác định một điểm vào có tên là $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`9 trong ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()7 của chúng và $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5 sẽ tự động tải nó khi chạy
Những người ở “Dịch vụ Tư vấn và Giải pháp Snek Pro” đã được thông báo về điểm đầu vào $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`9 và đã bắt đầu làm việc trên một phiên bản snek tốt hơn nhiều so với những gì bạn có thể mơ ước. Một cú hích dễ thương. Họ đã tạo một from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )4 đơn giản với rất ít mã
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()7Họ đang đóng gói from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )5, nhưng họ cũng cần cho $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5 biết cách tìm ra kẻ lén lút dễ thương
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()0Họ đã đăng ký biến from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )5 trong mô-đun from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )5 dưới tên from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )9. Bây giờ, họ cài đặt cả $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5 và from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )5
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()1Bây giờ, chạy $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5, họ có thể tạo ra một snek dễ thương, được tải động từ gói from setuptools import setup setup( name='snek', entry_points={ 'console_scripts': [ 'snek = snek:main', ], } )5
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()2Đại tu cơ sở hạ tầng SnekVP R&D của bạn có yêu cầu. Anh ấy muốn ngừng phát triển một thời gian, trong khi các kỹ sư của anh ấy dọn dẹp cơ sở hạ tầng $ python snek.py --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'`5 để có cơ sở mã đẹp hơn. Bạn quá bị phân tâm bởi những cáo buộc công khai rằng bạn đã tham ô khi thực hiện giao dịch nội gián trên thị trường snek, vì vậy bạn cho phép điều đó
Các kỹ sư trong R&D đã đi đến kết luận rằng nếu một số snek có thể được tải động, thì tất cả các snek đều có thể được tải động. Ngay cả sneks tích hợp. Họ đã loại bỏ cách đối xử đặc biệt với những kẻ lén lút hiện có
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()3Và, thay vào đó, đăng ký chúng như bất kỳ snek nào khác
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()4Bây giờ, bạn cần cài đặt lại snek để lấy điểm vào mới
ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()5ascii_snek = """\ --..,_ _,.--. `'.'. .'`__ o `;__. '.'. .'.'` '---'` ` '.`'--....--'`.' `'--....--'` """ def main(): print(ascii_snek) if __name__ == '__main__': main()6Đây thực sự là một snek nhỏ cho snek và một snek khổng lồ cho loại snek (đồng thời, bạn biết cách sử dụng các điểm vào Python)