Computer >> Máy Tính >  >> Lập trình >> Python

Kiểm tra các đối tượng trực tiếp bằng Python

Các chức năng trong mô-đun này cung cấp thông tin quy tắc sử dụng về các đối tượng trực tiếp như mô-đun, lớp, phương thức, chức năng, đối tượng mã, v.v. Các chức năng này thực hiện kiểm tra kiểu, truy xuất mã nguồn, kiểm tra các lớp và chức năng cũng như kiểm tra ngăn xếp trình thông dịch.

getmembers () - Hàm này trả về tất cả các thành viên của một đối tượng trong danh sách các cặp tên, giá trị được sắp xếp theo tên. Nếu vị từ tùy chọn được cung cấp, chỉ các thành viên mà vị từ trả về giá trị thực mới được đưa vào. getmodulename () − Hàm này trả về tên của mô-đun được đặt tên theo đường dẫn tệp, không bao gồm tên của các gói đi kèm

Chúng tôi sẽ sử dụng tập lệnh sau để hiểu hoạt động của mô-đun kiểm tra.

 # verify-example.py '' 'Đây là mô-đun docstring' '' def hello ():'' 'hello docstring' '' print ('Hello world') return # lớp định nghĩa lớp cha:'' 'cha docstring '' def __init __ (self):self.var ='hello' def hello (self):print (self.var) class child (parent):def hello (self):'' 'hello function overridden' '' super () .hello () print ("Bạn có khỏe không?") 

bắt đầu bằng '__'

>>> nhập kiểm tra, kiểm tra_example>>> cho k, v trong kiểm tra.getmembers (kiểm tra_xem xét):if k.startswith ('__') ==Sai:print (k, v) childhelloparent>>>  

Dự đoán

Vị từ là một điều kiện logic được áp dụng cho các hàm trong mô-đun kiểm tra. Ví dụ, hàm getmembers () trả về danh sách các thành viên của mô-đun mà điều kiện vị từ đã cho là đúng. Các vị từ sau được định nghĩa trong mô-đun kiểm tra

ismodule () Trả về true nếu đối tượng là một mô-đun.
isclass () Trả về true nếu đối tượng là một lớp, dù được tạo sẵn hay được tạo bằng mã Python.
ismethod () Trả về true nếu đối tượng là phương thức liên kết được viết bằng Python.
chức năng () Trả về true nếu đối tượng là một hàm Python, bao gồm các hàm được tạo bởi biểu thức lambda.
isgenerator () Trả về true nếu đối tượng là trình tạo.
iscode () Trả về true nếu đối tượng là mã.
isbuiltin () Trả về true nếu đối tượng là một hàm tích hợp sẵn hoặc một phương thức tích hợp sẵn có liên kết.
isabstract () Trả về true nếu đối tượng là một lớp cơ sở trừu tượng.

Tại đây, chỉ các thành viên lớp trong mô-đun sẽ được trả về.

>>> đối với k, v trong verify.getmembers (verify_example, verify.isclass):print (k, v) child  parent >>> 

Để truy xuất các thành viên của một lớp được chỉ định 'con' -

>>> verify.getmembers (pris_example.child)>>> x =verify_example.child ()>>> verify.getmembers (x) 

Hàm getdoc () truy xuất chuỗi doc của một mô-đun, lớp hoặc hàm.

>>> verify.getdoc (verify_example) 'Đây là docstring mô-đun'>>> verify.getdoc (verify_example.parent) 'parent docstring'>>> verify.getdoc (verify_example.hello) 'hello docstring'  

Hàm getource () tìm nạp mã định nghĩa của một hàm -

>>> print (verify.getsource (verify_example.hello)) def hello ():'' 'hello docstring' '' print ('Hello world') return>>> sign =verify.signature (cert_example.parent .hello)>>> in (ký tên) 

Mô-đun kiểm tra cũng có giao diện dòng lệnh.

 C:\ Users \ acer> python -m kiem tra -d kiem tra_exampleTarget:kiem tra_exampleOrigin:C:\ python36 \ kiem tra_example.py> 

Lệnh sau trả về mã nguồn của hàm 'Hello ()' trong mô-đun.

 C:\ Users \ acer> python -m checks_example:hellodef hello ():'' 'hello docstring' '' print ('Hello world') return