Câu trả lời được chấp nhận trước đó đã được phản đối tính Python 3.0. Thay vì sử dụng, inspect.getargspecbây giờ bạn nên chọn Signaturelớp thay thế nó.
Tạo chữ ký cho chức năng thật dễ dàng thông qua signaturechức năng :
from inspect import signature
def someMethod(self, arg1, kwarg1=None):
    pass
sig = signature(someMethod)
Bây giờ, bạn có thể xem các tham số của nó một cách nhanh chóng bằng cách nhập strnó:
str(sig)  # returns: '(self, arg1, kwarg1=None)'
hoặc bạn cũng có thể có được ánh xạ tên thuộc tính đến các đối tượng tham số thông qua sig.parameters.
params = sig.parameters 
print(params['kwarg1']) # prints: kwarg1=20
Ngoài ra, bạn có thể gọi lenvề sig.parameterscũng để xem số lượng các đối số chức năng này đòi hỏi:
print(len(params))  # 3
Mỗi mục trong paramsánh xạ thực sự là một Parameterđối tượng có thêm các thuộc tính làm cho cuộc sống của bạn dễ dàng hơn. Ví dụ: lấy một tham số và xem giá trị mặc định của nó giờ đây được thực hiện dễ dàng với:
kwarg1 = params['kwarg1']
kwarg1.default # returns: None
tương tự cho phần còn lại của các đối tượng chứa trong parameters.
Đối với 2.xngười dùng Python , mặc dù inspect.getargspec không bị phản đối, ngôn ngữ sẽ sớm là :-). Các Signaturelớp học không có sẵn trong các 2.xloạt và sẽ không được. Vì vậy, bạn vẫn cần phải làm việc với inspect.getargspec.
Đối với việc chuyển đổi giữa Python 2 và 3, nếu bạn có mã dựa trên giao diện của getargspecPython 2 và việc chuyển sang signaturein 3quá khó khăn, bạn có tùy chọn sử dụng có giá trịinspect.getfullargspec . Nó cung cấp một giao diện tương tự getargspec(một đối số có thể gọi được) để lấy các đối số của hàm đồng thời xử lý một số trường hợp bổ sung getargspeckhông:
from inspect import getfullargspec
def someMethod(self, arg1, kwarg1=None):
    pass
args = getfullargspec(someMethod)
Như với getargspec, getfullargspectrả về một NamedTupletrong đó có chứa các đối số.
print(args)
FullArgSpec(args=['self', 'arg1', 'kwarg1'], varargs=None, varkw=None, defaults=(None,), kwonlyargs=[], kwonlydefaults=None, annotations={})
               
              
inspectmô-đun thư viện chuẩn.