Python chạy phương thức lớp từ dòng lệnh
Một phương thức lớp là một phương thức được chia sẻ giữa tất cả các đối tượng. Để gọi một phương thức của lớp, hãy đặt lớp đó làm đối số đầu tiên Show Các phương thức của lớp có thể được gọi từ các thể hiện và từ chính lớp đó. Tất cả đều sử dụng cùng một phương pháp. Phương thức có thể sử dụng các biến và phương thức của lớp khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python Ví dụví dụ phương pháp lớp họcĐể biến một phương thức thành một classmethod, hãy thêm @classmethod trước định nghĩa phương thức. Là tham số, phương thức luôn lấy lớp Ví dụ dưới đây định nghĩa một phương thức lớp. Phương thức lớp sau đó có thể được sử dụng bởi chính lớp đó. Trong ví dụ này, phương thức lớp sử dụng tên thuộc tính lớp 1 class Fruit: Bạn có thể sử dụng một phương thức lớp với cả đối tượng và lớp 1 apple = Fruit() Tên tham số hiện thuộc về lớp, nếu bạn thay đổi tên bằng cách sử dụng một đối tượng, nó sẽ bỏ qua điều đó. Nhưng nếu bạn làm điều đó theo lớp thì nó sẽ thay đổi, ví dụ bên dưới 1 apple.name="Apple" viết thay thếThường thì ký hiệu Pythonic được sử dụng, nhưng điều này không bắt buộc. 1 class Fruit: classmethod vs staticmethodGiống như một phương thức tĩnh, một phương thức lớp không cần một đối tượng được khởi tạo Một phương thức lớp khác với một phương thức tĩnh ở chỗ một phương thức tĩnh không biết về chính lớp đó. Trong một phương thức lớp, tham số luôn là chính lớp đó một phương thức tĩnh không biết gì về lớp hoặc thể hiện. Bạn cũng có thể sử dụng một cuộc gọi chức năng một phương thức lớp nhận lớp khi phương thức được gọi. Nó biết về các thuộc tính và phương thức của lớp Lớp này cung cấp một khung đơn giản để viết trình thông dịch lệnh hướng dòng. Chúng thường hữu ích cho các khai thác thử nghiệm, công cụ quản trị và nguyên mẫu mà sau này sẽ được bao bọc trong một giao diện phức tạp hơn Một thể hiện hoặc thể hiện của lớp con là một khung thông dịch hướng dòng. Không có lý do chính đáng để khởi tạo chính nó; Đối số tùy chọn Completekey là tên của khóa hoàn thành; . Nếu không có Completekey và có sẵn, việc hoàn thành lệnh được thực hiện tự động Các đối số tùy chọn stdin và stdout chỉ định các đối tượng tệp đầu vào và đầu ra mà cá thể Cmd hoặc cá thể của lớp con sẽ sử dụng cho đầu vào và đầu ra. Nếu không được chỉ định, chúng sẽ mặc định và Nếu bạn muốn sử dụng một stdin nhất định, hãy đảm bảo đặt thuộc tính của đối tượng thành Welcome to the turtle shell. Type help or ? to list commands. (turtle) ? Documented commands (type help3, nếu không thì stdin sẽ bị bỏ qua đối tượng cmdMột thể hiện có các phương pháp sau Cmd. cmdloop(giới thiệu=Không)Liên tục đưa ra lời nhắc, chấp nhận đầu vào, phân tích cú pháp tiền tố ban đầu khỏi đầu vào đã nhận và gửi đến các phương thức hành động, chuyển cho chúng phần còn lại của dòng làm đối số Đối số tùy chọn là một biểu ngữ hoặc chuỗi giới thiệu sẽ được đưa ra trước lời nhắc đầu tiên (điều này sẽ ghi đè thuộc tính lớp) Nếu mô-đun được tải, đầu vào sẽ tự động kế thừa chỉnh sửa danh sách lịch sử giống như bash (e. g. Control-P cuộn trở lại lệnh cuối cùng, Control-N chuyển tiếp tới lệnh tiếp theo, Control-F di chuyển con trỏ sang phải không phá hủy, Control-B di chuyển con trỏ sang trái không phá hủy, v.v. ) Phần cuối của tệp trên đầu vào được trả lại dưới dạng chuỗi Welcome to the turtle shell. Type help or ? to list commands. (turtle) ? Documented commands (type help7 Phiên bản phiên dịch sẽ nhận ra tên lệnh Welcome to the turtle shell. Type help or ? to list commands. (turtle) ? Documented commands (type help8 khi và chỉ khi nó có phương thức Welcome to the turtle shell. Type help or ? to list commands. (turtle) ? Documented commands (type help9. Trong trường hợp đặc biệt, một dòng bắt đầu bằng ký tự class Fruit:30 được gửi đến phương thức class Fruit:31. Như một trường hợp đặc biệt khác, một dòng bắt đầu bằng ký tự class Fruit:32 được gửi đến phương thức class Fruit:33 (nếu phương thức đó được xác định) Phương thức này sẽ trả về khi phương thức trả về giá trị thực. Đối số dừng là giá trị trả về từ phương thức class Fruit:36 tương ứng của lệnh Nếu tính năng hoàn thành được bật, việc hoàn thành các lệnh sẽ được thực hiện tự động và việc hoàn thành các lệnh args được thực hiện bằng cách gọi class Fruit:37 với các đối số là văn bản, dòng, begidx và endidx. văn bản là tiền tố chuỗi mà chúng tôi đang cố khớp. tất cả các trận đấu trở lại phải bắt đầu với nó. dòng là dòng đầu vào hiện tại đã loại bỏ khoảng trắng ở đầu, begidx và endidx là chỉ mục bắt đầu và kết thúc của văn bản tiền tố, có thể được sử dụng để cung cấp cách hoàn thành khác nhau tùy thuộc vào vị trí của đối số Tất cả các lớp con kế thừa một class Fruit:31 được xác định trước. Phương thức này, được gọi với đối số 100, gọi phương thức tương ứng 101 và nếu không có, in chuỗi tài liệu của 102, nếu có. Không có đối số, class Fruit:31 liệt kê tất cả các chủ đề trợ giúp có sẵn (nghĩa là tất cả các lệnh có phương thức 104 tương ứng hoặc các lệnh có chuỗi tài liệu) và cũng liệt kê mọi lệnh không có giấy tờ Giải thích đối số như thể nó đã được gõ để đáp lại lời nhắc. Điều này có thể bị ghi đè, nhưng thông thường không cần phải như vậy; . Giá trị trả về là một cờ cho biết liệu trình thông dịch có nên dừng phiên dịch các lệnh hay không. Nếu có một phương thức class Fruit:36 cho lệnh str, giá trị trả về của phương thức đó sẽ được trả về, nếu không, giá trị trả về từ phương thức sẽ được trả vềCmd. dòng trống() Phương thức được gọi khi một dòng trống được nhập để đáp lại lời nhắc. Nếu phương thức này không bị ghi đè, nó sẽ lặp lại lệnh không trống cuối cùng được nhập Cmd. mặc định(dòng)Phương thức được gọi trên một dòng đầu vào khi tiền tố lệnh không được nhận dạng. Nếu phương thức này không bị ghi đè, nó sẽ in một thông báo lỗi và trả về Cmd. completedefault(văn bản , dòng, begidx, endidx)Phương thức được gọi để hoàn thành một dòng đầu vào khi không có phương thức 109 dành riêng cho lệnh. Theo mặc định, nó trả về một danh sách trốngCmd. cột(danh sách , băng thông hiển thị=80) Phương thức được gọi để hiển thị danh sách các chuỗi dưới dạng một tập hợp các cột nhỏ gọn. Mỗi cột chỉ rộng khi cần thiết. Các cột được phân tách bằng hai dấu cách để dễ đọc Cmd. precmd(dòng)Phương thức hook được thực thi ngay trước khi dòng lệnh được diễn giải, nhưng sau khi dấu nhắc đầu vào được tạo và phát hành. Phương thức này còn sơ khai trong ; . Giá trị trả về được sử dụng làm lệnh sẽ được thực thi bởi phương thức; Cmd. postcmd(dừng , dòng)Phương thức hook được thực thi ngay sau khi gửi lệnh xong. Phương thức này còn sơ khai trong ; . dòng là dòng lệnh đã được thực thi và dừng là một cờ cho biết liệu việc thực thi có bị chấm dứt hay không sau khi gọi đến ; . Giá trị trả về của phương thức này sẽ được sử dụng làm giá trị mới cho cờ nội bộ tương ứng với dừng; Cmd. vòng lặp trước()Phương thức hook được thực thi một lần khi được gọi. Phương thức này còn sơ khai trong ; Cmd. vòng lặp sau()Phương thức hook được thực hiện một lần khi sắp trở lại. Phương thức này còn sơ khai trong ; Thể hiện của các lớp con có một số biến thể hiện công khai Cmd. nhắc nhởLời nhắc được đưa ra để thu hút đầu vào Cmd. ký tự nhận dạngChuỗi ký tự được chấp nhận cho tiền tố lệnh Cmd. lastcmdTiền tố lệnh không trống cuối cùng được nhìn thấy Một danh sách các dòng đầu vào xếp hàng đợi. Danh sách cmdqueue được kiểm tra khi cần đầu vào mới; Cmd. giới thiệuMột chuỗi để phát hành dưới dạng giới thiệu hoặc biểu ngữ. Có thể bị ghi đè bằng cách đưa ra một đối số cho phương thức Cmd. doc_headerTiêu đề phát hành nếu đầu ra trợ giúp có phần dành cho các lệnh được ghi lại Cmd. misc_headerTiêu đề phát hành nếu đầu ra trợ giúp có một phần dành cho các chủ đề trợ giúp linh tinh (nghĩa là có các phương thức 104 mà không có phương thức class Fruit:36 tương ứng)Cmd. undoc_header Tiêu đề phát hành nếu đầu ra trợ giúp có một phần dành cho các lệnh không có tài liệu (nghĩa là có các phương thức class Fruit:36 mà không có phương thức 104 tương ứng)Cmd. thước kẻ Ký tự được sử dụng để vẽ các đường phân cách dưới tiêu đề thông báo trợ giúp. Nếu trống, không có đường kẻ nào được vẽ. Nó mặc định là 107Cmd. use_rawinput Một lá cờ, mặc định là true. Nếu đúng, sử dụng để hiển thị dấu nhắc và đọc lệnh tiếp theo; . (Điều này có nghĩa là bằng cách nhập , trên các hệ thống hỗ trợ nó, trình thông dịch sẽ tự động hỗ trợ chỉnh sửa dòng giống như Emacs và tổ hợp phím lịch sử lệnh. ) Ví dụ CmdMô-đun này chủ yếu hữu ích để xây dựng các trình bao tùy chỉnh cho phép người dùng làm việc với chương trình một cách tương tác Phần này trình bày một ví dụ đơn giản về cách xây dựng trình bao xung quanh một số lệnh trong mô-đun Các lệnh rùa cơ bản như được thêm vào một lớp con với phương thức có tên là 107. Đối số được chuyển đổi thành một số và được gửi đến mô-đun rùa. Chuỗi tài liệu được sử dụng trong tiện ích trợ giúp do trình bao cung cấp Ví dụ này cũng bao gồm một cơ sở ghi và phát lại cơ bản được triển khai với phương thức chịu trách nhiệm chuyển đổi đầu vào thành chữ thường và viết các lệnh vào một tệp. Phương thức 109 đọc tệp và thêm các lệnh đã ghi vào apple = Fruit()60 để phát lại ngay lập tức class Fruit:2 Đây là một phiên mẫu với mai rùa hiển thị các chức năng trợ giúp, sử dụng các dòng trống để lặp lại các lệnh cũng như tiện ích ghi và phát lại đơn giản Bạn có thể gọi một lớp trong hàm Python không?Trong Python, các lớp, hàm và thể hiện của các lớp đều có thể được sử dụng làm “các hàm gọi được” .
Python __ chính __ là gì?__main__ là tên của môi trường chạy mã cấp cao nhất . “Mã cấp cao nhất” là mô-đun Python do người dùng chỉ định đầu tiên bắt đầu chạy. Đó là "cấp cao nhất" vì nó nhập tất cả các mô-đun khác mà chương trình cần. Đôi khi “mã cấp cao nhất” được gọi là điểm vào ứng dụng. |