Decoratorsஐ பயன்படுத்தி பைத்தான் குறிமுறைவரிகளை மேம்படுத்தி கொள்க

பைத்தான் நிரலாளர்கள் பலரும் இந்த Decorators ஐ பயன்படுத்திடுகின்றனர் ஆனால் அதனை பயன்படுத்திடுவதால் என்ன இறுதி விளைவு ஏற்படும் எனஒருசிலர் மட்டுமே புரிந்து கொண்டு அதற்குதக்கவாறு பயன்படுத்திடுகின்றனர் மற்றஅனைவரும் வழக்கம்-போன்று பயன்படுத்துவதுதானே என அதன் இறுதி விளைவுகளைபற்றி தெரிந்து கொள்ளாமலேயே பயன்படுத்தி கொள்கின்றனர் பெரும்பாலும் இந்த Decorators என்பதின் பொதுவான @decorator syntax. சேர்த்து பயன்படுத்தப்படுகின்றது வழக்கம்போன்ற நம்முடைய முதன்முதல் நிரல்தொடரை பைத்தானில் எவ்வாறு உருவாக்குகின்றனர் எனஇப்போது காண்போம்
def get_அனைவருக்கும்_வணக்கம்_function(punctuation):
“””Returns a அனைவருக்கும்,வணக்கம் function, with or without punctuation.”””
def அனைவருக்கும்_வணக்கம்():
print(“அனைவருக்கும்_வணக்கம்”)
def அனைவருக்கும்_வணக்கம்_punctuated():
print(“அனைவருக்கும் வணக்கம்!”)
if punctuation:
return அனைவருக்கும்_வணக்கம்_punctuated
else:
return அனைவருக்கும்_வணக்கம்
if __name__ == ‘__main__’:
ready_to_call = get_அனைவருக்கும்_வணக்கம்_function(punctuation=True)
ready_to_call()
# “அனைவருக்கும்வணக்கம்!” is printed
இந்த துனுக்கு குறிமுறைவரிகளில் get_அனைவருக்கும்_வணக்கம்_function எனும் செயலியானது ஒரு செயலியை திருப்புகின்றது.பின்னர் இந்த திருப்பபட்ட செயலியானது முதலில் அதற்கான செயல்ஒன்று ஒதுக்கீடு செய்யப்பட்டு அதன்பின்னர் அழைக்கப்-படுகின்றது இவ்வாறான நெகிழ்வுதன்மையின் வாயிலாக செயலிகளை பயன்படுத்திக் கொள்ளவும் உருமாற்றுதல் செய்திடவும் திறவுகோலாக இந்த Decoratorsஇன் செயல்கள் அமைகின்றன அடுத்து ஒரு எடுத்துகாட்டினை காண்போம்
import datetime
import time
from app_config import log
def log_performance(func):
def wrapper():
datetime_now = datetime.datetime.now()
log.debug(f”Function {func.__name__} being called at {datetime_now}”)
start_time = time.time()
func()
log.debug(f”Took {time.time() – start_time} seconds”)
return wrapper
@log_performance
def calculate_squares():
for i in range(10_000_000):
i_squared = i**2
if __name__ == ‘__main__’:
calculate_squares()
மேலே கானும் துனுக்கு குறிமுறைவரிகளில் log_performancedecorator என்பதை ஒரு செயலிக்குள் பயன்படுத்திடுகின்றோம் இது எண்களில் வர்க்கமூலங்களை 0 முதல் 10000000வரை கணக்கீடுசெய்கின்றது இதனுடைய வெளியீடு பின்வருமாறு இருக்கும்
$ python decorator_test.py
Function calculate_squares being called at 2018-08-23 12:39:02.112904
Took 2.5019338130950928 seconds
decorator என்பது நம்முடைய குறிமுறைவரிகளில் நெகிழ்வானதும் பராமரிக்க எளிதானதாகவும் செய்ய ஒரு சிறந்த வழியாகஅமைகின்றது. செயல்பாடுகளை இயக்கநேரத்தில் இது சரிபார்ப்பு செய்திடுகின்றது பிழைத்திருத்தவும் செய்வதற்கும் இது பயன்படுகின்றது தனிப்பயன்decoratorஐ நம்முடைய குறிமுறைவரிகளில் எழுதுவது மிகஎளிது, மூன்றாம் தரப்பு குறியீட்டைப் புரிந்துகொள்வதும், ஏற்கனவே எழுதப்பட்ட decoratorஐ புரிந்துகொண்டும் பயன்படுத்தி கொள்க
குறிப்பு இங்குஇந்த python decorator ஐ பற்றி முழுமையாக விளக்கமுற்பட்டால் அதிக பக்கங்களுக்கு நீளும் என்பதால் இரண்டு எடுத்துகாட்டுகளை மட்டும் வழங்கியுள்ளேன் மேலும் விவரங்களுக்கு https://www.learnpython.org/en/Decorators/ எனும் இணைய பக்கத்திற்கு சென்றறிந்து பயன்படுத்தி கொள்க.

மறுமொழியொன்றை இடுங்கள்

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  மாற்று )

Google+ photo

You are commenting using your Google+ account. Log Out /  மாற்று )

Twitter picture

You are commenting using your Twitter account. Log Out /  மாற்று )

Facebook photo

You are commenting using your Facebook account. Log Out /  மாற்று )

Connecting to %s

%d bloggers like this: