Bắt đầu một package

Phát triển gói Python

James Fulton

Climate informatics researcher

Vì sao nên xây dựng package?

  • Để tái sử dụng code dễ hơn
  • Tránh sao chép & dán nhiều
  • Giữ hàm luôn cập nhật
  • Chia sẻ code cho người khác
Phát triển gói Python

Nội dung khóa học

Bạn sẽ xây một package hoàn chỉnh và học:

  • Bố cục file
  • Cấu trúc import
  • Cách cài đặt package
  • Thêm license và README
  • Style và unit test cho package chất lượng cao
  • Đăng ký và phát hành lên PyPI
  • Dùng mẫu (template) package
Phát triển gói Python

Script, module và package

  • Script - File Python chạy như python myscript.py

  • Package - Thư mục chứa mã Python để import

    • ví dụ: numpy
  • Subpackage - Package nhỏ bên trong package

    • ví dụ: numpy.randomnumpy.linalg
  • Module - File Python trong package lưu mã của package.

    • ví dụ: minh họa ở 2 slide tiếp theo
  • Library - Một package hoặc tập hợp các package

    • ví dụ: thư viện chuẩn Python (math, os, datetime,...)
Phát triển gói Python

Cây thư mục của một package

Cây thư mục cho package đơn giản

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Thư mục mysimplepackage là một Python package
  • simplemodule.py chứa toàn bộ mã của package
  • __init__.py đánh dấu thư mục này là một Python package
Phát triển gói Python

Nội dung của package đơn giản

__init__.py

File trống

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

File chứa các hàm và mã dùng chung.

Phát triển gói Python

Subpackage

Cây thư mục cho package có subpackage

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Phát triển gói Python

Ayo berlatih!

Phát triển gói Python

Preparing Video For Download...