Chúng tôi được cung cấp một đối tượng và nhiệm vụ của chúng tôi là truy xuất mã nguồn của nó, để làm điều này, chúng tôi đã kiểm tra các thư viện tiêu chuẩn tích hợp mô-đun, mô-đun dill và mô-đun dis trong lập trình Python. Chúng cung cấp một số chức năng hữu ích để theo dõi thông tin về các đối tượng trực tiếp như mô-đun, lớp, phương thức, hàm, dấu vết, đối tượng khung và đối tượng mã. Phương thức getsource[] được sử dụng để lấy mã nguồn của các đối tượng Python
cú pháp. quan sát. lấy nguồn [đối tượng]
Tham số. Tham số loại đối tượng mà chúng tôi muốn mã nguồn
loại trả lại. văn bản của mã nguồn cho một đối tượng
Ghi chú. Một IOError được nâng lên nếu không thể truy xuất mã nguồn
Sử dụng mô-đun kiểm tra để truy xuất mã nguồn
Thí dụ. Ở đây chúng tôi đang nhập mô-đun kiểm tra trước và sau đó sử dụng kiểm tra. hàm getsource[] để tìm nạp mã nguồn của đối tượng đã cho
trăn3
# import inspect library
import
inspect
def
test[x]:
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial0
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial1
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial2
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial3
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial4
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial5
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial6
đầu ra
def test[x]: return [x+2]*[x-2]
Thí dụ. Ở đây chúng tôi đang tìm nạp mã nguồn cho đối tượng đã cho
trăn3
# import inspect library
import
inspect
def
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula1
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial0
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula3
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula4
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula5
def far[n]: factorial = 1 if int[n] >= 1: for i in range [1, int[n]+1]: factorial = factorial * i return factorial0
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula7
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula8
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula9
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula4
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula5
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE2
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE3_______19_______4
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE5
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE6
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE7
50 0 LOAD_FAST 0 [a1] 2 LOAD_FAST 1 [a2] 4 BINARY_ADD 6 STORE_FAST 2 [a] 51 8 LOAD_FAST 2 [a] 10 RETURN_VALUE8
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula5
def fun[a1,a2]: a = a1 + a2 return a0_______8_______8
def fun[a1,a2]: a = a1 + a2 return a2
def fun[a1,a2]: a = a1 + a2 return a3
class DataFrame[NDFrame]: """ Two-dimensional size-mutable, potentially heterogeneous tabula5
def fun[a1,a2]: a = a1 + a2 return a5