Với từ khóa trăn
Chúng tôi không thể sử dụng từ khóa làm tên biến , tên hàm hoặc bất kỳ định danh nào khác. Chúng được sử dụng để xác định cú pháp và cấu trúc của ngôn ngữ Python Trong Python, các từ khóa có phân biệt chữ hoa chữ thường Có 33 từ khóa trong Python 3. 7. Con số này có thể thay đổi một chút theo thời gian Tất cả các từ khóa ngoại trừ 1, 2và 3 đều ở dạng chữ thường và chúng phải được viết như hiện tại. Danh sách tất cả các từ khóa được đưa ra bên dưới 2 5 6 0 1 3 3 4 5 6 1 8 9 0 1 2 3 4 5 6 7 8 9 80 81 82 83 84 85 86 87 88 89 10 11Việc xem xét tất cả các từ khóa cùng một lúc và cố gắng tìm hiểu ý nghĩa của chúng có thể khiến bạn thỏa mãn Nếu bạn muốn có một cái nhìn tổng quan, thì đây là danh sách đầy đủ đủ của tất cả các từ khóa với các ví dụ Định danh PythonĐịnh danh là tên được đặt cho các thực thể như lớp, hàm, biến, v. v. Nó giúp phân biệt thực tế này với thực tế khác Khả năng thử nghiệm thực tế của Robot Framework được cung cấp bởi các thư viện thử nghiệm. Có rất nhiều thư viện hiện có, một số thư viện thậm chí còn đi kèm với khung cốt lõi, nhưng vẫn thường có nhu cầu tạo thư viện mới. Nhiệm vụ này không quá phức tạp vì như chương này minh họa, API thư viện của Robot Framework rất đơn giản và dễ hiểu API động theo hầu hết các cách tương tự như API tĩnh. Ví dụ: báo cáo trạng thái từ khóa, ghi nhật ký và trả về giá trị hoạt động chính xác theo cùng một cách. Quan trọng nhất, không có sự khác biệt trong việc nhập các thư viện động và sử dụng từ khóa của chúng so với các thư viện khác. Nói cách khác, người dùng không cần biết thư viện của họ sử dụng API nào Sự khác biệt duy nhất giữa thư viện tĩnh và thư viện động là cách Robot Framework phát hiện thư viện triển khai những từ khóa nào, những đối số và tài liệu nào mà các từ khóa này có và cách các từ khóa thực sự được thực thi. Với API tĩnh, tất cả điều này được thực hiện bằng phản chiếu, nhưng các thư viện động có các phương thức đặc biệt được sử dụng cho các mục đích này Một trong những lợi ích của API động là bạn có thể linh hoạt hơn trong việc tổ chức thư viện của mình. Với API tĩnh, bạn phải có tất cả các từ khóa trong một lớp hoặc mô-đun, trong khi với API động, chẳng hạn, bạn có thể triển khai từng từ khóa dưới dạng một lớp riêng biệt. Tuy nhiên, trường hợp sử dụng này không quá quan trọng với Python vì khả năng động và tính đa kế thừa của nó đã mang lại nhiều tính linh hoạt và cũng có khả năng sử dụng API thư viện lai Một trường hợp sử dụng chính khác cho API động là triển khai một thư viện để nó hoạt động như một proxy cho một thư viện thực tế có thể chạy trên một số quy trình khác hoặc thậm chí trên một máy khác. Loại thư viện proxy này có thể rất mỏng và vì tên từ khóa và tất cả thông tin khác được lấy động nên không cần cập nhật proxy khi từ khóa mới được thêm vào thư viện thực tế Phần này giải thích cách API động hoạt động giữa Robot Framework và các thư viện động. Việc các thư viện này được triển khai thực sự như thế nào không quan trọng đối với Robot Framework (ví dụ: cách gọi phương thức 1 được ánh xạ tới việc triển khai từ khóa chính xác) và có thể thực hiện nhiều cách tiếp cận khác nhau. Người dùng Python cũng có thể thấy dự án PythonLibCore hữu íchLấy tên từ khóaCác thư viện động cho biết những từ khóa nào chúng triển khai bằng phương pháp 2. Phương thức này không thể nhận bất kỳ đối số nào và nó phải trả về một danh sách hoặc mảng các chuỗi chứa tên của các từ khóa mà thư viện triển khaiNếu tên từ khóa được trả về chứa nhiều từ, chúng có thể được trả về cách nhau bằng dấu cách hoặc dấu gạch dưới hoặc ở định dạng camelCase. Ví dụ: 3, 4 và 5 đều sẽ được ánh xạ tới các từ khóa Từ khóa đầu tiên và Từ khóa thứ haiThư viện động phải luôn có phương thức này. Nếu nó bị thiếu hoặc nếu gọi nó không thành công vì một số lý do, thư viện được coi là thư viện tĩnh Các phương pháp đánh dấu để hiển thị dưới dạng từ khóaNếu một thư viện động nên chứa cả hai phương thức có nghĩa là từ khóa và phương thức có nghĩa là phương thức trợ giúp riêng, thì có thể khôn ngoan khi đánh dấu các phương thức từ khóa như vậy để triển khai dễ dàng hơn 2. Trình trang trí 81 cho phép thực hiện việc này một cách dễ dàng vì nó tạo thuộc tính 'robot_name' tùy chỉnh trên phương thức trang trí. Điều này cho phép tạo danh sách từ khóa chỉ bằng cách kiểm tra thuộc tính 82 trên mọi phương thức trong thư viện trong thời gian 2 0Chạy từ khóaCác thư viện động có một phương pháp đặc biệt 1 (bí danh 85) để thực hiện các từ khóa của họ. Khi một từ khóa từ thư viện động được sử dụng trong dữ liệu thử nghiệm, Robot Framework sử dụng phương thức 1 để thực thi từ khóa đó. Phương thức này có hai hoặc ba đối số. Đối số đầu tiên là một chuỗi chứa tên của từ khóa sẽ được thực thi theo cùng định dạng như được trả về bởi 2. Đối số thứ hai là danh sách các đối số vị trí được cung cấp cho từ khóa trong dữ liệu thử nghiệm và đối số thứ ba tùy chọn là một từ điển chứa các đối số được đặt tên. Nếu đối số thứ ba bị thiếu, các đối số có tên miễn phí và đối số chỉ có tên không được hỗ trợ và các đối số có tên khác được ánh xạ tới các đối số vị tríGhi chú Trước Robot Framework 3. 1, các đối số được đặt tên bình thường được ánh xạ tới các đối số vị trí bất kể 1 có chấp nhận hai hoặc ba đối số hay không. Đối số thứ ba chỉ có thể có các đối số được đặt tên miễn phíSau khi nhận được tên từ khóa và các đối số, thư viện có thể thực thi từ khóa một cách tự do, nhưng nó phải sử dụng cùng một cơ chế để giao tiếp với khung như các thư viện tĩnh. Điều này có nghĩa là sử dụng các ngoại lệ để báo cáo trạng thái từ khóa, ghi nhật ký bằng cách ghi vào đầu ra tiêu chuẩn hoặc bằng cách sử dụng API ghi nhật ký được cung cấp và sử dụng câu lệnh trả về trong 1 để trả lại nội dung nào đóMỗi thư viện động phải có cả phương thức 2 và 1 nhưng các phương thức còn lại trong API động là tùy chọn. Ví dụ dưới đây cho thấy một thư viện động, mặc dù tầm thường, đang hoạt động 8Nhận đối số từ khóaNếu một thư viện động chỉ triển khai các phương thức 2 và 1, Khung công tác Robot không có bất kỳ thông tin nào về các đối số mà các từ khóa đã triển khai chấp nhận. Ví dụ: cả Từ khóa thứ nhất và Từ khóa thứ hai trong ví dụ trên đều có thể được sử dụng với bất kỳ đối số nào. Điều này có vấn đề, bởi vì hầu hết các từ khóa thực đều mong đợi một số lượng từ khóa nhất định và trong những trường hợp này, chúng sẽ cần tự kiểm tra số lượng đối sốCác thư viện động có thể truyền đạt những đối số mà từ khóa của họ mong đợi bằng cách sử dụng phương thức 34 (bí danh 35). Phương thức này lấy tên của một từ khóa làm đối số và nó phải trả về một danh sách các chuỗi chứa các đối số được chấp nhận bởi từ khóa đóTương tự như các từ khóa khác, từ khóa động có thể yêu cầu bất kỳ số lượng đối số vị trí nào, có giá trị mặc định, chấp nhận số lượng đối số thay đổi, chấp nhận đối số được đặt tên miễn phí và chỉ có đối số được đặt tên. Cú pháp cách biểu diễn tất cả các biến khác nhau này bắt nguồn từ cách chúng được chỉ định trong Python và được giải thích trong bảng sau Biểu diễn các đối số khác nhau bằng 34 Loại đối số Cách biểu diễnVí dụKhông có đối sốDanh sách trống. 37Một hoặc nhiều đối số vị tríDanh sách các chuỗi chứa tên đối số. 38, 39Giá trị mặc địnhHai cách để biểu thị tên đối số và giá trị mặc định
91, 92 93, 94Số đối số thay đổi (varargs)Đối số sau các đối số vị trí có thể có và giá trị mặc định của chúng có tiền tố 95. 96, 97, 98 Đối số được đặt tên miễn phí (kwargs) Đối số cuối cùng có tiền tố 99. Yêu cầu 1 để hỗ trợ các đối số được đặt tên miễn phí. 91, 92, 93Các đối số chỉ được đặt tênCác đối số sau các biến thể hoặc một 95 đơn độc nếu không có biến thể nào. Có hoặc không có mặc định. Yêu cầu 1 để hỗ trợ các đối số chỉ được đặt tên. Mới trong Robot Framework 3. 1. 96, 97, 98Khi sử dụng 34, Robot Framework sẽ tự động tính toán số lượng đối số vị trí mà từ khóa yêu cầu và nó có hỗ trợ đối số được đặt tên miễn phí hay không. Nếu một từ khóa được sử dụng với các đối số không hợp lệ, sẽ xảy ra lỗi và thậm chí không gọi được 1Tên đối số thực tế và giá trị mặc định được trả về cũng rất quan trọng. Chúng cần thiết để hỗ trợ đối số được đặt tên và công cụ Libdoc cần chúng để có thể tạo tài liệu thư viện có ý nghĩa Như đã giải thích trong bảng trên, các giá trị mặc định có thể được chỉ định bằng tên đối số dưới dạng chuỗi như 11 hoặc dưới dạng bộ như 12. Vấn đề chính với cú pháp trước là tất cả các giá trị mặc định được coi là chuỗi trong khi cú pháp sau cho phép sử dụng tất cả các đối tượng như 13 hoặc 14. Khi sử dụng các đối tượng khác ngoài chuỗi, Robot Framework có thể thực hiện chuyển đổi đối số tự động dựa trên chúngVì lý do nhất quán, các đối số không chấp nhận giá trị mặc định cũng có thể được chỉ định làm bộ một mục. Ví dụ, 15 và 16 là tương đươngNếu thiếu 34 hoặc trả về Python 18 cho một từ khóa nhất định, thì từ khóa đó sẽ nhận được một đặc tả đối số chấp nhận tất cả các đối số. Thông số đối số tự động này là 19 hoặc 20, tùy thuộc vào việc 1 có hỗ trợ đối số được đặt tên miễn phí hay khôngGhi chú Hỗ trợ chỉ định các đối số dưới dạng các bộ như 12 là tính năng mới trong Robot Framework 3. 2Nhận các loại đối số từ khóaKhung người máy 3. 1 đã giới thiệu hỗ trợ chuyển đổi đối số tự động và API thư viện động cũng hỗ trợ điều đó. Logic chuyển đổi hoạt động chính xác như với các thư viện tĩnh, nhưng cách thông tin loại được chỉ định là khác nhau một cách tự nhiên Với các loại thư viện động có thể được trả về bằng phương thức 23 tùy chọn (bí danh 24). Nó có thể trả về các loại bằng cách sử dụng danh sách hoặc từ điển chính xác giống như các loại có thể được chỉ định khi sử dụng trình trang trí @keyword. Thông tin loại có thể được chỉ định bằng cách sử dụng các loại thực tế như 25, nhưng đặc biệt nếu một thư viện động lấy thông tin này từ các hệ thống bên ngoài, thì việc sử dụng các chuỗi như 26 hoặc 27 có thể dễ dàng hơn. Xem phần Chuyển đổi được hỗ trợ để biết thêm thông tin về các loại được hỗ trợ và cách chỉ định chúngRobot Framework thực hiện chuyển đổi đối số tự động cũng dựa trên các giá trị mặc định của đối số. Trước đó, điều này không hoạt động với API động vì chỉ có thể chỉ định các đối số dưới dạng chuỗi. Như đã thảo luận trong phần trước, điều này đã được thay đổi trong Robot Framework 3. 2 và ngày nay các giá trị mặc định được trả về như 28 được tự động sử dụng cho mục đích nàyLấy thẻ từ khóaThư viện động có thể báo cáo các thẻ từ khóa bằng cách sử dụng phương pháp 29 (bí danh 30). Nó lấy tên từ khóa làm đối số và sẽ trả về các thẻ tương ứng dưới dạng danh sách các chuỗiNgoài ra, có thể chỉ định các thẻ trên hàng cuối cùng của tài liệu được trả về bằng phương pháp 31 được thảo luận bên dưới. Điều này yêu cầu bắt đầu hàng cuối cùng với 32 và liệt kê các thẻ sau nó như 33Mẹo Phương thức 29 đảm bảo được gọi trước phương thức 31. Điều này giúp dễ dàng nhúng các thẻ vào tài liệu chỉ khi phương thức 29 không được gọiNhận tài liệu từ khóaNếu các thư viện động muốn cung cấp tài liệu từ khóa, họ có thể triển khai phương thức 31 (bí danh 38). Nó lấy tên từ khóa làm đối số và, như tên phương thức ngụ ý, trả về tài liệu của nó dưới dạng chuỗiTài liệu trả về được sử dụng tương tự như chuỗi tài liệu từ khóa với các thư viện tĩnh. Trường hợp sử dụng chính là đưa tài liệu của từ khóa vào tài liệu thư viện do Libdoc tạo. Ngoài ra, dòng đầu tiên của tài liệu (cho đến 39 đầu tiên) được hiển thị trong nhật ký kiểm traNhận tài liệu thư viện chungPhương pháp 31 cũng có thể được sử dụng để chỉ định tài liệu thư viện tổng thể. Tài liệu này không được sử dụng khi các thử nghiệm được thực thi, nhưng nó có thể làm cho tài liệu do Libdoc tạo ra tốt hơn nhiềuThư viện động có thể cung cấp cả tài liệu thư viện chung và tài liệu liên quan đến việc đưa thư viện vào sử dụng. Cái trước nhận được bằng cách gọi 31 với giá trị đặc biệt 42 và cái sau nhận được bằng cách sử dụng giá trị 43. Cách trình bày tài liệu được thử nghiệm tốt nhất với Libdoc trong thực tếCác thư viện động cũng có thể chỉ định trực tiếp tài liệu thư viện chung trong mã dưới dạng chuỗi tài liệu của lớp thư viện và phương thức 43 của nó. Nếu một tài liệu không trống được lấy trực tiếp từ mã và từ phương thức 31, thì tài liệu sau được ưu tiênLấy thông tin nguồn từ khóaAPI động che giấu việc triển khai thực sự các từ khóa từ Robot Framework và do đó không thể biết được các từ khóa được triển khai ở đâu. Điều này có nghĩa là trình chỉnh sửa và các công cụ khác sử dụng API Robot Framework không thể triển khai các tính năng như chuyển sang định nghĩa. Vấn đề này có thể được giải quyết bằng cách triển khai một phương thức động tùy chọn khác có tên là 46 (bí danh 47) trả về thông tin nguồnGiá trị trả về từ phương thức 46 phải là một chuỗi hoặc 18 nếu không có thông tin nguồn. Trong trường hợp đơn giản, chỉ cần trả về một đường dẫn tuyệt đối tới tệp thực hiện từ khóa là đủ. Nếu biết số dòng nơi bắt đầu triển khai từ khóa, nó có thể được nhúng vào giá trị trả về như 50. Chỉ trả lại số dòng là có thể như 51Thông tin nguồn của chính thư viện được lấy tự động từ lớp thư viện đã nhập giống như với các API thư viện khác. Đường dẫn nguồn thư viện được sử dụng với tất cả các từ khóa không xác định đường dẫn nguồn riêng Ghi chú Trả về thông tin nguồn cho từ khóa là một tính năng mới trong Robot Framework 3. 2 Cú pháp đối số được đặt tên với các thư viện độngNgoài ra API thư viện động hỗ trợ cú pháp đối số được đặt tên. Sử dụng cú pháp hoạt động dựa trên tên đối số và giá trị mặc định nhận được từ thư viện bằng phương thức 34Nếu phương thức 1 chấp nhận ba đối số, thì đối số thứ hai nhận tất cả các đối số vị trí dưới dạng danh sách và các đối số cuối cùng nhận tất cả các đối số có tên dưới dạng ánh xạ. Nếu nó chỉ chấp nhận hai đối số, các đối số được đặt tên sẽ được ánh xạ tới các đối số vị trí. Trong trường hợp sau, nếu một từ khóa có nhiều đối số với các giá trị mặc định và chỉ một số đối số sau được đưa ra, khung sẽ điền vào các đối số tùy chọn bị bỏ qua dựa trên các giá trị mặc định được trả về bởi phương thức 34Việc sử dụng cú pháp đối số được đặt tên với các thư viện động được minh họa bằng các ví dụ sau. Tất cả các ví dụ đều sử dụng từ khóa Dynamic có thông số đối số 55. Nhận xét trên mỗi hàng cho biết cách 1 sẽ được gọi trong những trường hợp này nếu nó có hai đối số (i. e. chữ ký là 57) và nếu nó có ba đối số (i. e. 58) 3Ghi chú Trước Robot Framework 3. 1, tất cả các đối số được đặt tên thông thường được ánh xạ tới các đối số vị trí và tùy chọn 59 chỉ được sử dụng với các đối số được đặt tên miễn phí. Với các ví dụ trên, 1 luôn được gọi như ngày nay nếu nó không hỗ trợ 59Các đối số được đặt tên miễn phí với các thư viện độngCác thư viện động cũng có thể hỗ trợ các đối số được đặt tên miễn phí ( 802). Điều kiện tiên quyết bắt buộc đối với hỗ trợ này là phương thức 1 có ba đối số. cái thứ ba sẽ nhận được các đối số được đặt tên miễn phí cùng với các đối số có tên khác có thể. Các đối số này được chuyển đến từ khóa dưới dạng ánh xạĐối số mà từ khóa chấp nhận phụ thuộc vào những gì mà 34 trả về cho nó. Nếu đối số cuối cùng bắt đầu bằng 99, từ khóa đó được công nhận để chấp nhận các đối số được đặt tên miễn phíViệc sử dụng cú pháp đối số có tên miễn phí với các thư viện động được minh họa bằng các ví dụ sau. Tất cả các ví dụ đều sử dụng từ khóa Động có thông số đối số 806. Nhận xét hiển thị các đối số mà phương thức 1 thực sự được gọi với 9Ghi chú Trước Robot Framework 3. 1, các đối số được đặt tên thông thường được ánh xạ tới các đối số vị trí nhưng ngày nay chúng là một phần của 59 cùng với các đối số được đặt tên miễn phíĐối số chỉ được đặt tên với thư viện độngBắt đầu từ Robot Framework 3. 1, các thư viện động có thể có các đối số chỉ được đặt tên. Điều này yêu cầu phương thức 1 có ba đối số. phần thứ ba nhận các đối số chỉ được đặt tên cùng với các đối số được đặt tên khácTrong đặc tả đối số được trả về bởi phương thức 34, các đối số chỉ có tên được chỉ định sau số lượng đối số có thể có ( 811) hoặc dấu hoa thị đơn độc ( 95) nếu từ khóa không chấp nhận varargs. Đối số chỉ được đặt tên có thể có giá trị mặc định và thứ tự của đối số có và không có giá trị mặc định không quan trọngViệc sử dụng cú pháp đối số chỉ được đặt tên với các thư viện động được minh họa bằng các ví dụ sau. Tất cả các ví dụ đều sử dụng từ khóa Động đã được chỉ định để có thông số đối số 813. Nhận xét hiển thị các đối số mà phương thức 1 thực sự được gọi với 9Bản tóm tắtTất cả các phương thức đặc biệt trong API động được liệt kê trong bảng bên dưới. Tên phương thức được liệt kê ở định dạng gạch dưới, nhưng bí danh camelCase của chúng hoạt động giống hệt nhau |