Ngôn ngữ lập trình Python cực kỳ thân thiện với người mới bắt đầu nhờ cú pháp đơn giản giống tiếng Anh và các hàm tích hợp mạnh mẽ nhưng trực quan. Rất có thể là dòng mã Python đầu tiên của bạn trông giống như thế này
print["Hello World"]
Khi bạn cảm thấy thoải mái hơn với ngôn ngữ này, bạn bắt đầu tìm hiểu về các khả năng khác nhau của hàm
Hello World
0 tích hợp. Bạn càng có nhiều kinh nghiệm với tư cách là nhà phát triển Python, bạn càng khám phá được nhiều trường hợp cạnh tranh, hack, cú pháp kỳ lạ và các tính năng nâng caoTrong bài viết này, tôi sẽ chỉ cho bạn những chức năng của hàm
Hello World
0, bắt đầu từ các chức năng cơ bản của nó và sau đó đề cập đến các trường hợp sử dụng ngày càng nâng cao hơn và các thủ thuật thú vịIn cơ bản [] Cách sử dụngCách cơ bản nhất để sử dụng câu lệnh
Hello World
0 và cũng là cách phổ biến nhất là ghi một thông báo [chuỗi hoặc đối tượng khác] vào bảng điều khiểnVà không có gì đáng ngạc nhiên, đầu ra của giao diện điều khiển sẽ như sau
Hello World
Bây giờ, hãy đi vào các tính năng ít được biết đến
Ký tự kết thúc và dấu phân cáchHàm
Hello World
0 cũng cho phép bạn chỉ định một ký tự được thêm vào cuối chuỗi với tham số Hello World
4. Ví dụ: nếu bạn muốn in chuỗi Hello World
5 sau đối số chính, bạn có thể thực hiện việc nàyVà điều đó sẽ xuất ra văn bản sau [không có dòng mới ở cuối]
________số 8Nếu bạn muốn loại trừ dòng mới khỏi đầu ra để in mọi thứ trên cùng một dòng, bạn có thể đặt
Hello World
6 như thế nàyDấu phân cách là một tính năng chính khác của câu lệnh Python
Hello World
0. Để bắt đầu, bạn có thể in nhiều giá trị với cùng một lệnh gọi hàm bằng cách tách chúng bằng dấu phẩyHello World
Hàm
Hello World
0 ngầm đặt tham số của nó là Hello World
9 để các đối số được truyền như thế này được phân tách bằng dấu cách khi in. Tuy nhiên, bạn có thể chỉ định chuỗi của riêng mình để phân tách từng đối sốHello World
4Đại diện đối tượng tùy chỉnh
Khi in các đối tượng phức tạp trong Python, bạn thường chỉ định cách chúng trông giống như một chuỗi thay vì dựa vào hành vi mô tả mặc định
Hello World
5Vì vậy, khi bạn viết một lớp, bạn có thể ghi đè lên các phương thức dunder của
Hello World***
0 và Hello World***
1 để cho Python biết cách xử lý đối tượng được inHello World
8Tôi luôn thích đặt rõ ràng cả
Hello World***
0 và Hello World***
1, nhưng bạn không cầnGhi vào tệp bằng print[]Bạn đã bao giờ nghĩ làm thế nào mà
Hello World
0 biết nơi xuất ra thông báo đã cho chưa? Đoạn mã này tạo một tệp có tên là “đầu ra. txt” và viết “Hello World” vào đó. Điều này là có thể bởi vì
Hello World
0 gọi ngầm phương thức Hello World***
8 của luồng bạn truyền vào, vì vậy điều này sẽ tương đương vớiHello World
6Lưu ý điều này, bạn có thể tạo một bộ ghi thô sơ bằng cách sử dụng hàm
Hello World
0Hoặc, tốt hơn nữa, bạn có thể ghi đè hàm
Hello World
0 để mở rộng các chức năng của nó bằng cách ghi nhật ký mọi câu lệnh in vào một tệpVới phương pháp này, bạn có thể dễ dàng thực hiện mọi cuộc gọi
Hello World
0 trong tệp của mình và tự động ghi thông báo vào một tệp. Tuy nhiên, nếu bạn thích những thứ như vậy, tốt hơn hết bạn nên sử dụng mô-đun Hello World
2Thực thi mã bằng cách in ra tệp
Điều gì sẽ xảy ra nếu bạn có thể hack hàm
Hello World
0 để khiến nó thực thi mã tùy ý? . Với ý nghĩ đó, bạn có thể ghi đè hoặc ghi đè phương thức này bằng mã của riêng mìnhHello World
4Ngoài ra, bạn có thể ghi đè lên
Hello World
6 để kích hoạt chức năng tải trọng cho bất kỳ lệnh gọi Hello World
0 mặc định nàoHello World
7Như bạn có thể nhận thấy, Python gọi hàm
Hello World
8 [và do đó cũng gọi phương thức Hello World***
8] hai lần, vì vậy bạn có thể phải xử lý việc đóKỹ thuật chèn mã này có thể không có nhiều trường hợp sử dụng trong thế giới thực, nhưng ai biết mọi người có thể nghĩ ra điều gì?
Chèn mã thư viện của bên thứ baMặc dù việc chèn mã được hiển thị trước đó sẽ không gây ra bất kỳ tác hại nào, nhưng ví dụ tiếp theo có thể. Nếu bạn đã lập trình được một thời gian, bạn đã nghe nói việc sử dụng thư viện của bên thứ ba có thể đưa một số mối đe dọa bảo mật vào mã nguồn của bạn như thế nào.
Trong ví dụ này, tôi sẽ chỉ cho bạn cách nhà cung cấp có thể bao gồm mã độc được kích hoạt bởi hàm
Hello World
0Và sau đó, bạn sẽ sử dụng lớp này trong các chương trình của mình
Ngoài ra, bạn có thể ghi đè toàn cầu
Hello World
6 trong mô-đun độc hại của mình để mọi lệnh gọi Hello World
0 đều thực thi tải trọng của bạnBây giờ, bạn có thể lập luận rằng ai đó nhìn vào mã nguồn sẽ ngay lập tức nhận thấy những dòng mã độc hại này. Đôi khi tôi kiểm tra các thư viện tôi sử dụng bản thân mình. Thay vào đó, làm cách nào để ẩn mã độc bên trong tiện ích mở rộng C?
Các nhà phát triển Python ít có khả năng kiểm tra tệp nguồn C từ gói Python hơn là tệp Python. Ngoài ra, nếu bạn biên dịch tiện ích mở rộng cục bộ khi cài đặt, phần mềm chống vi-rút [nếu bạn sử dụng bất kỳ phần mềm nào] sẽ tin tưởng vào tệp nhị phân kết quả đến từ người dùng. Hoặc làm thế nào về mã obfuscation?
Thật buồn cười khi nhận ra các nhà phát triển phần mềm dễ bị tổn thương như thế nào. Và sau đó, bạn nhận được một trình bao đảo ngược, chạy keylogger với sự cho phép của người dùng để thu thập mật khẩu quản trị viên/root và cuối cùng chiếm lấy hệ thống
Mặc dù tôi sẽ không chỉ ra cách đạt được điều này một cách cụ thể, nhưng bạn có thể xem hướng dẫn này về cách viết phần mở rộng C cho Python
Tăng tốc cơ sở mã Python của bạn với tiện ích mở rộng C
Mang tốc độ của C vào các chương trình Python của bạn
lập trình tốt hơn. quán rượu
Phần kết luậnTóm lại, hàm
Hello World
0 có nhiều khả năng hơn những gì mà các nhà phát triển Python thường biết, từ việc chỉ cần in ra bảng điều khiển đến ghi vào tệp để thực thi mã tùy ý. Xét cho cùng, hàm Hello World
0 chỉ là một công cụ và như vậy, bạn có thể hack nó để đạt được các mục tiêu khác nhauCọ vẽ chỉ là một cây gậy có gắn lông. Tùy thuộc vào nghệ sĩ để sử dụng nó một cách sáng tạo
Và chúng ta có thể khẳng định rằng một nghệ sĩ với một cây cọ vẽ chỉ là một hacker với một cây gậy?
Tôi hy vọng bạn thích bài viết này. Nếu bạn biết về bất kỳ trường hợp sử dụng thực tế hoặc lý thuyết nào khác cho hàm
Hello World
0, hãy cho chúng tôi biết trong phần nhận xétCảm ơn vì đã đọc
Nếu bạn quan tâm đến việc làm cho mã Python của mình chuyên nghiệp hơn và dễ bảo trì hơn, hãy xem câu chuyện này