python প্রোগ্রামিং - কিভাবে পাইথন একটি স্ট্রিং হিসাবে একটি ফাংশন নাম পেতে?




5 Answers

my_function.__name__

__name__ ব্যবহার করা পছন্দসই পদ্ধতি হিসাবে এটি অভিন্নভাবে প্রযোজ্য। func_name থেকে ভিন্ন, এটি অন্তর্নির্মিত ফাংশনগুলিতেও কাজ করে:

>>> import time
>>> time.time.func_name
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
AttributeError: 'builtin_function_or_method' object has no attribute 'func_name'
>>> time.time.__name__ 
'time'

এছাড়াও ডবল underscores পাঠক নির্দেশ করে এই একটি বিশেষ বৈশিষ্ট্য। একটি বোনাস হিসাবে, ক্লাস এবং মডিউলগুলির একটি __name__ বৈশিষ্ট্য রয়েছে, তাই আপনি শুধুমাত্র একটি বিশেষ নাম মনে __name__

কেন শিখব

পাইথন ইন, ফাংশন কল ছাড়া, আমি একটি স্ট্রিং হিসাবে একটি ফাংশন নাম পেতে পারি?

def my_function():
    pass

print get_function_name_as_string(my_function) # my_function is not in quotes

আউটপুট "my_function" উচিত।

পাইথন এ কি ফাংশন পাওয়া যায়? যদি না হয়, get_function_name_as_string কিভাবে প্রয়োগ get_function_name_as_string কোন ধারনা?




my_function.func_name

ফাংশন অন্যান্য মজা বৈশিষ্ট্য আছে। তাদের তালিকা করতে dir(func_name) টাইপ করুন। func_name.func_code.co_code একটি স্ট্রিং হিসাবে সংরক্ষিত, সংকলিত ফাংশন।

import dis
dis.dis(my_function)

প্রায় মানুষের পঠনযোগ্য বিন্যাসে কোড প্রদর্শন করবে। :)




আমি একটি ফাংশন সজ্জা ব্যবহার করে পছন্দ করি। আমি একটি বর্গ যোগ, যা সময় ফাংশন সময়। GLog একটি স্ট্যান্ডার্ড পাইথন লগার হয় অনুমান করুন:

class EnterExitLog():
    def __init__(self, funcName):
        self.funcName = funcName

    def __enter__(self):
        gLog.debug('Started: %s' % self.funcName)
        self.init_time = datetime.datetime.now()
        return self

    def __exit__(self, type, value, tb):
        gLog.debug('Finished: %s in: %s seconds' % (self.funcName, datetime.datetime.now() - self.init_time))

def func_timer_decorator(func):
    def func_wrapper(*args, **kwargs):
        with EnterExitLog(func.__name__):
            return func(*args, **kwargs)

    return func_wrapper

তাই এখন আপনি আপনার ফাংশন সঙ্গে এটি করতে হবে সব সাজাইয়া এবং voila

@func_timer_decorator
def my_func():



আপনি যদি ক্লাস পদ্ধতিতেও আগ্রহী হন তবে পাইথন 3.3+ এর __qualname__ ছাড়াও __name__

def my_function():
    pass

class MyClass(object):
    def method(self):
        pass

print(my_function.__name__)         # gives "my_function"
print(MyClass.method.__name__)      # gives "method"

print(my_function.__qualname__)     # gives "my_function"
print(MyClass.method.__qualname__)  # gives "MyClass.method"



আপনি শুধু এখানে ফাংশন নাম পেতে চান যে জন্য একটি সহজ কোড। আপনি এই ফাংশন সংজ্ঞায়িত আছে বলুন

def function1():
    print "function1"

def function2():
    print "function2"

def function3():
    print "function3"
print function1.__name__

আউটপুট function1 হবে

এখন বলুন আপনি একটি তালিকা এই ফাংশন আছে

a = [function1 , function2 , funciton3]

ফাংশন নাম পেতে

for i in a:
    print i.__name__

আউটপুট হবে

function1
function2
function3




Related

python string function