Hướng dẫn python decorator add argument to function - trang trí python thêm đối số vào chức năng
Bạn không thể truyền nó làm tên riêng của nó, nhưng bạn có thể thêm nó vào các từ khóa. Show
Ngoài ra, bạn có thể đặt tên cho đối số của chính nó:
Phương pháp lớp: Điều kiện tiên quyết: Người trang trí trong Python, Chức năng Trang trí Decorators in Python, Function Decorators Chúng tôi biết các nhà trang trí là một công cụ rất mạnh mẽ và hữu ích trong Python vì nó cho phép các lập trình viên sửa đổi hành vi của chức năng hoặc lớp. Trong bài viết này, chúng tôi sẽ tìm hiểu về thedecorators với các tham số với sự trợ giúp của nhiều ví dụ.Decorators with Parameters with help of multiple examples.
Trang trí với các thông số tương tự như các nhà trang trí bình thường. & NBSP; Cú pháp cho các bộ trang trí với các thông số:@decorator(params) def func_name(): ''' Function implementation''' Mã trên tương đương với & nbsp; def func_name(): ''' Function implementation''' func_name = (decorator(params))(func_name) """ Khi việc thực thi bắt đầu từ bên trái sang bên phải (params) được gọi là trả về một hàm fun_obj. Sử dụng fun_obj, cuộc gọi fun_obj (fun_name) được thực hiện. Bên trong hàm bên trong, các hoạt động cần thiết được thực hiện và tham chiếu chức năng thực tế được trả về sẽ được gán cho func_name. Bây giờ, func_name () có thể được sử dụng để gọi hàm với trình trang trí được áp dụng trên đó. & Nbsp;decorator(params) is called which returns a function object fun_obj. Using the fun_obj the call fun_obj(fun_name) is made. Inside the inner function, required operations are performed and the actual function reference
is returned which will be assigned to func_name. Now, func_name() can be used to call the function with decorator applied on it. Cách trang trí với các tham số được thực hiện & nbsp; Python3
0 1 2 1____11____115 6def 8 9 0 1 6 0 4 5 6
8Ở đây params cũng có thể trống. & Nbsp;params can also be empty. Quan sát những điều này đầu tiên: Python3
@decorator(params) def func_name(): ''' Function implementation'''0 @decorator(params) def func_name(): ''' Function implementation'''1 @decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 @decorator(params) def func_name(): ''' Function implementation'''4 @decorator(params) def func_name(): ''' Function implementation'''5 @decorator(params) def func_name(): ''' Function implementation'''1 def @decorator(params) def func_name(): ''' Function implementation'''8 1 2 1____11 5 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 def func_name(): ''' Function implementation''' func_name = (decorator(params))(func_name) """7 @decorator(params) def func_name(): ''' Function implementation'''5 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 Inside decorator Inside inner function Decorated the function Inside actual function2 @decorator(params) def func_name(): ''' Function implementation'''5 6Inside decorator Inside inner function Decorated the function Inside actual function5 @decorator(params) def func_name(): ''' Function implementation'''1 0 Inside decorator Inside inner function Decorated the function Inside actual function8 Inside decorator Inside inner function Decorated the function Inside actual function9
Inside decorator Inside inner function I like geeksforgeeks Inside actual function1 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 Inside decorator Inside inner function I like geeksforgeeks Inside actual function5 @decorator(params) def func_name(): ''' Function implementation'''5 Inside decorator Inside inner function I like geeksforgeeks Inside actual function7 Một cách khác: & nbsp; Python3
@decorator(params) def func_name(): ''' Function implementation'''0 @decorator(params) def func_name(): ''' Function implementation'''1 @decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 @decorator(params) def func_name(): ''' Function implementation'''4 @decorator(params) def func_name(): ''' Function implementation'''5 @decorator(params) def func_name(): ''' Function implementation'''1 def @decorator(params) def func_name(): ''' Function implementation'''8 1 2 1____11 5 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 def func_name(): ''' Function implementation''' func_name = (decorator(params))(func_name) """7 @decorator(params) def func_name(): ''' Function implementation'''5 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 Inside decorator Inside inner function Decorated the function Inside actual function2 @decorator(params) def func_name(): ''' Function implementation'''5 6Inside decorator Inside inner function Decorated the function Inside actual function5 @decorator(params) def func_name(): ''' Function implementation'''1 0 Inside decorator Inside inner function Decorated the function Inside actual function8
Inside decorator Inside inner function I like geeksforgeeks Inside actual function1 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 Inside decorator Inside inner function I like geeksforgeeks Inside actual function5 @decorator(params) def func_name(): ''' Function implementation'''5 05Output: Inside decorator Inside inner function Decorated the function Inside actual function Một cách khác: & nbsp; & nbsp; & nbsp; Hãy để di chuyển đến một ví dụ khác: & nbsp; Python3Ví dụ #1: & nbsp; 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 @decorator(params) def func_name(): ''' Function implementation'''4 @decorator(params) def func_name(): ''' Function implementation'''5 6def 8 9@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 def func_name(): ''' Function implementation''' func_name = (decorator(params))(func_name) """7 @decorator(params) def func_name(): ''' Function implementation'''5 9 0 1 9Inside decorator Inside inner function Decorated the function Inside actual function5 6 0 4
8Ở đây params cũng có thể trống. & Nbsp; 6@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 Inside decorator Inside inner function I like geeksforgeeks Inside actual function5 @decorator(params) def func_name(): ''' Function implementation'''5 Output: Inside decorator Inside inner function I like geeksforgeeks Inside actual function Quan sát những điều này đầu tiên: Python3
@decorator(params) def func_name(): ''' Function implementation'''0 @decorator(params) def func_name(): ''' Function implementation'''1 def @decorator(params) def func_name(): ''' Function implementation'''8 1 2 1____11 5@decorator(params) def func_name(): ''' Function implementation'''1 0 Inside decorator Inside inner function Decorated the function Inside actual function8 Inside decorator Inside inner function Decorated the function Inside actual function9 63@decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''3 71 72 73 74 75 76 63 78 1 2 1 1 83
Inside decorator Inside inner function I like geeksforgeeks Inside actual function1 Một cách khác: & nbsp; & nbsp; & nbsp; Hãy để di chuyển đến một ví dụ khác: & nbsp; Ví dụ #1: & nbsp; 9@decorator(params) def func_name(): ''' Function implementation'''2 01 02 03 04 05 06 07 04 09 04 07@decorator(params) def func_name(): ''' Function implementation'''5 Output: I like Geeksforgeeks Summation of values - 27 Geeks for Geeks Ví dụ này cũng cho chúng ta biết rằng các tham số chức năng bên ngoài có thể được truy cập bằng hàm bên trong kèm theo. & NBSP; & NBSP; Ví dụ #3: & nbsp; Python3
14 6def 17 9@decorator(params) def func_name(): ''' Function implementation'''2 20 9def 57 1 2 1____11 63@decorator(params) def func_name(): ''' Function implementation'''2 31 63 33 34 35 36 37__ 45 0 47 1 2 1____11____11 63 0 55 9 0 86 6 0 61 62@decorator(params) def func_name(): ''' Function implementation'''3 64 04 66 04 68@decorator(params) def func_name(): ''' Function implementation'''5
71 1 93 6 75 40 77 6 95 80 97 98 9 75 75 40 87 6 0 90Các
@decorator(params) def func_name(): ''' Function implementation'''00 1 93 6@decorator(params) def func_name(): ''' Function implementation'''04 40 @decorator(params) def func_name(): ''' Function implementation'''06 6 95 42 97 98 9@decorator(params) def func_name(): ''' Function implementation'''04 75 40 @decorator(params) def func_name(): ''' Function implementation'''16 6 0 @decorator(params) def func_name(): ''' Function implementation'''19 @decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''21 @decorator(params) def func_name(): ''' Function implementation'''22 04@decorator(params) def func_name(): ''' Function implementation'''24 04@decorator(params) def func_name(): ''' Function implementation'''26 04 09 04@decorator(params) def func_name(): ''' Function implementation'''30 @decorator(params) def func_name(): ''' Function implementation'''31 @decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''33 @decorator(params) def func_name(): ''' Function implementation'''2 @decorator(params) def func_name(): ''' Function implementation'''35 @decorator(params) def func_name(): ''' Function implementation'''36 04@decorator(params) def func_name(): ''' Function implementation'''38 04@decorator(params) def func_name(): ''' Function implementation'''40 04@decorator(params) def func_name(): ''' Function implementation'''42 04@decorator(params) def func_name(): ''' Function implementation'''44 04@decorator(params) def func_name(): ''' Function implementation'''46 04@decorator(params) def func_name(): ''' Function implementation'''48 @decorator(params) def func_name(): ''' Function implementation'''31 Output: Decorator for 'stringJoin' Decorator for 'summation' stringJoin started ... I like Geeksforgeeks summation started ... 1729 1. Bên trong người trang trí 2. Bên trong chức năng Lưu ý: Ảnh chụp nhanh hình ảnh được thực hiện bằng Pythontutor. & NBSP;Image snapshots are taken using
PythonTutor. Người trang trí Python có thể lấy tranh luận không?Các đối số trang trí có thể truy cập được cho bộ trang trí bên trong thông qua việc đóng, giống hệt như cách chức năng bên trong được gói () có thể truy cập f. Và vì việc đóng cửa mở rộng đến tất cả các cấp của các hàm bên trong, ARG cũng có thể truy cập được từ bên trong Wrapping () nếu cần thiết., exactly like how the wrapped() inner function can access f . And since closures extend to all the levels of inner functions, arg is also accessible from within wrapped() if necessary.
Chúng ta có thể sử dụng bộ trang trí bên trong một chức năng trong Python không?Nesting có nghĩa là đặt hoặc lưu trữ bên trong cái khác.Do đó, trang trí lồng nhau có nghĩa là áp dụng nhiều hơn một trang trí bên trong một chức năng.Python cho phép chúng tôi thực hiện nhiều hơn một người trang trí cho một chức năng.Nó làm cho các nhà trang trí hữu ích cho các khối xây dựng có thể tái sử dụng khi nó tích lũy một số hiệu ứng với nhau.Python allows us to implement more than one decorator to a function. It makes decorators useful for reusable building blocks as it accumulates the several effects together.
Một hàm Python có thể có nhiều đối số không?Chúng ta có thể chuyển nhiều đối số cho hàm Python bằng cách xác định trước các tham số chính thức trong định nghĩa hàm..
Một chức năng có thể lấy một danh sách làm đối số?Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số đến một hàm (chuỗi, số, danh sách, từ điển, v.v.) và nó sẽ được coi là cùng một loại dữ liệu bên trong hàm. (string, number, list, dictionary etc.), and it will be treated as the same data type inside the function. |