#!/usr/bin/python import re line = "Cats are smarter than dogs"; matchObj = re.match[ r'dogs', line, re.M|re.I] if matchObj: print "match --> matchObj.group[] : ", matchObj.group[] else: print "No match!!" searchObj = re.search[ r'dogs', line, re.M|re.I] if searchObj: print "search --> searchObj.group[] : ", searchObj.group[] else: print "Nothing found!!"
Hướng dẫn này là một tài nguyên toàn diện về Python – dành cho cả những người đóng góp mới và có kinh nghiệm. Đó là bởi cùng một cộng đồng duy trì Python. Chúng tôi hoan nghênh những đóng góp của bạn cho Python
Tham khảo nhanh
Dưới đây là các bước cơ bản cần thiết để thiết lập và đóng góp bản vá. Điều này có nghĩa là một danh sách kiểm tra, khi bạn biết những điều cơ bản. Để được hướng dẫn đầy đủ, vui lòng xem
Cài đặt và thiết lập và các phụ thuộc khác [xem trang để biết thông tin chi tiết]
Chia nhánh kho lưu trữ CPython vào tài khoản GitHub của bạn và sử dụng
git clone //github.com//cpython cd cpython
Xây dựng Python, sử dụng trên UNIX và macOS
./configure --with-pydebug && make -j
và trên Windows sử dụng
PCbuild\build.bat -e -d
Xem thêm , và các trang dành riêng cho nền tảng cho , và
:
./python -m test -j3
Trên hệ thống macOS, thay thế
git clone //github.com//cpython cd cpython
1 bằnggit clone //github.com//cpython cd cpython
2. Trên Windows, sử dụnggit clone //github.com//cpython cd cpython
3Tạo một nhánh mới nơi công việc của bạn cho vấn đề sẽ được thực hiện, e. g
git checkout -b fix-issue-12345 main
Nếu một vấn đề chưa tồn tại, hãy tạo nó. vấn đề tầm thường [e. g. sửa lỗi đánh máy] không yêu cầu tạo bất kỳ sự cố nào
Khi bạn đã khắc phục sự cố, hãy chạy thử nghiệm, chạy
git clone //github.com//cpython cd cpython
4 và nếu mọi thứ đều ổn, hãy cam kếtĐẩy nhánh vào ngã ba của bạn trên GitHub và. Bao gồm số vấn đề bằng cách sử dụng
./configure --with-pydebug && make -j
0 trong mô tả yêu cầu kéo. Ví dụgh-12345: Fix some bug in spam module
Thêm một mục Tin tức vào thư mục
./configure --with-pydebug && make -j
1 dưới dạng tệp riêng lẻ. Mục nhập tin tức có thể được tạo bằng cách sử dụng blurb-it hoặc công cụ blurb và lệnh./configure --with-pydebug && make -j
2 của nó. Vui lòng đọc thêm về./configure --with-pydebug && make -j
3 trong
Ghi chú
Những người đóng góp lần đầu sẽ cần phải ký Thỏa thuận cấp phép cộng tác viên [CLA] như được mô tả trong phần của hướng dẫn này
đường dẫn nhanh
Dưới đây là một số liên kết mà bạn có thể sẽ tham khảo thường xuyên khi đóng góp cho Python
Người tìm bệnh
Trạng thái Buildbot
PEP [Đề xuất cải tiến Python]
Đóng góp
Chúng tôi khuyến khích mọi người đóng góp cho Python và đó là lý do tại sao chúng tôi đưa ra hướng dẫn dành cho nhà phát triển này. Nếu bạn vẫn còn thắc mắc sau khi xem tài liệu trong hướng dẫn này, thì nhóm Cố vấn Python cốt lõi sẵn sàng giúp hướng dẫn những người đóng góp mới trong suốt quá trình
Một số cá nhân từ cộng đồng Python đã đóng góp vào một loạt hướng dẫn tuyệt vời tại Hướng dẫn nguồn mở
Các nhà phát triển cốt lõi cũng như những người đóng góp sẽ thấy các hướng dẫn sau hữu ích
Cách đóng góp cho nguồn mở
Xây dựng cộng đồng chào đón
Hướng dẫn đóng góp cho Python
người đóng góp
phim tài liệu
Triager
Nhà phát triển cốt lõi
Chúng tôi khuyên bạn nên đọc các tài liệu trong hướng dẫn này khi cần thiết. Bạn có thể dừng ở nơi bạn cảm thấy thoải mái và bắt đầu đóng góp ngay lập tức mà không cần đọc và hiểu các tài liệu này cùng một lúc. Nếu bạn chọn bỏ qua trong tài liệu, hãy lưu ý rằng nó được viết với giả định rằng tài liệu trước đó đã được đọc, do đó bạn có thể thấy cần phải quay lại để điền vào các khái niệm và thuật ngữ còn thiếu
Đề xuất các thay đổi đối với chính Python
Cải thiện mã, tài liệu và kiểm tra của Python là những nhiệm vụ đang diễn ra sẽ không bao giờ “hoàn thành”, vì Python hoạt động như một phần của hệ thống công nghệ không ngừng phát triển. Một nhiệm vụ đang diễn ra thậm chí còn khó khăn hơn các hoạt động bảo trì cần thiết này là tìm cách biến Python, dưới dạng thư viện chuẩn và định nghĩa ngôn ngữ, thành một công cụ thậm chí còn tốt hơn trong bộ công cụ của nhà phát triển
Mặc dù những loại thay đổi này hiếm hơn nhiều so với những thay đổi được mô tả ở trên, nhưng chúng vẫn xảy ra và quá trình đó cũng được mô tả như một phần của hướng dẫn này
Triển khai phiên dịch khác
Hướng dẫn này dành riêng cho việc đóng góp cho trình thông dịch tham chiếu Python, còn được gọi là CPython [trong khi hầu hết thư viện chuẩn được viết bằng Python, lõi trình thông dịch được viết bằng C và tích hợp dễ dàng nhất với hệ sinh thái C và C++]
Có các triển khai Python khác, mỗi triển khai có một trọng tâm khác nhau. Giống như CPython, họ luôn có nhiều việc muốn làm hơn là có các nhà phát triển làm việc với họ. Một số ví dụ chính có thể được quan tâm là
PyPy. Trình thông dịch Python tập trung vào hoạt động tốc độ cao [được biên dịch bởi JIT] trên các nền tảng chính
Jython. Trình thông dịch Python tập trung vào việc tích hợp tốt với môi trường Máy ảo Java [JVM]
Trăn sắt. Trình thông dịch Python tập trung vào việc tích hợp tốt với Common Language Runtime [CLR] được cung cấp bởi. NET và Mono
không ngăn xếp. Trình thông dịch Python tập trung vào việc cung cấp các vi luồng nhẹ trong khi vẫn tương thích phần lớn với các mô-đun mở rộng dành riêng cho CPython
Tài nguyên chính
- Hướng dẫn phong cách mã hóa
PEP 7 [Hướng dẫn kiểu cho mã C]
PEP 8 [Hướng dẫn kiểu cho mã Python]
- Người tìm bệnh
Trạng thái Buildbot
- Mã nguồn
Duyệt trực tuyến
Ảnh chụp nhánh *chính*
PEP [Đề xuất cải tiến Python]
Tài nguyên bổ sung
Bất cứ ai cũng có thể sao chép các nguồn cho hướng dẫn này. Nhìn thấy
- Giúp với …
- hỗ trợ công cụ
Các công cụ khác nhau với các tệp cấu hình được tìm thấy trong thư mục Misc
Thông tin về các trình soạn thảo và cấu hình của chúng có thể được tìm thấy trong wiki
con trăn. bảo trì tổ chức
Tìm kiếm hướng dẫn này
quy tắc ứng xử
Xin lưu ý rằng tất cả các tương tác trên cơ sở hạ tầng do Python Software Foundation hỗ trợ đều tuân theo Quy tắc ứng xử của PSF, bao gồm tất cả cơ sở hạ tầng được sử dụng trong quá trình phát triển chính Python [e. g. danh sách gửi thư, trình theo dõi vấn đề, GitHub, v.v. ]. Nói chung, điều này có nghĩa là mọi người đều phải cởi mở, ân cần và tôn trọng người khác bất kể vị trí của họ trong dự án