Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में eval() मेथड: उपयोग और उदाहरण


पायथन eval() मेथड का उपयोग एक एक्सप्रेशन स्ट्रिंग को पायथन एक्सप्रेशन के रूप में पार्स करने और फिर प्रोग्राम के भीतर उस पायथन एक्सप्रेशन को चलाने के लिए किया जाता है।

सिंटैक्स

पायथन eval() मेथड का सामान्य सिंटैक्स है:

eval(expression, globals=None, locals=None)

जहां:

  • expression: आवश्यक स्ट्रिंग पैरामीटर, यह वह एक्सप्रेशन स्ट्रिंग है जिसे पार्स किया जा रहा है और पायथन एक्सप्रेशन के रूप में निष्पादित किया जा रहा है।
  • globals: वैकल्पिक पैरामीटर एक डिक्शनरी है जिसका उपयोग एक्सप्रेशन के लिए उपलब्ध एक्सप्रेशंस को निर्दिष्ट करने के लिए किया जाता है। यदि स्पष्ट रूप से उल्लेख नहीं किया गया है, तो '`__builtins__': None` एलिमेंट जैसे स्टैंडर्ड बिल्ट-इन मेथड्स उपलब्ध हैं।
  • locals: वैकल्पिक पैरामीटर, eval() फंक्शन के लिए उपलब्ध लोकल वेरिएबल्स और मेथड्स को निर्दिष्ट करने के लिए उपयोग किया जाता है।

अब eval() मेथड को बेहतर ढंग से समझने के लिए, आइए इसे विभिन्न उदाहरणों के माध्यम से समझते हैं।

सरल eval() मेथड

str1 = 'Hello'
print(eval('str1 == "Hello"'))
print(eval('str1 + ", Python"'))

आउटपुट

True
Hello, Python

यूजर इनपुट के साथ पायथन eval() मेथड

from math import *
for l in range(1, 3):
    func = input("Enter Math Function to Evaluate:\n")
    try:
        print(eval(func))
    except Exception as ex:
        print(ex)
        break
print('Done')

आउटपुट

Enter Math Function to Evaluate: abs(-42)
42
Enter Math Function to Evaluate: max(12, 3, 4, 2, 17)
17
Done

पायथन eval() globals और locals

यह समझने से पहले कि हमें eval() मेथड में कौन से फंक्शंस पास करने हैं, आइए ग्लोबल और लोकल स्कोप में मौजूद सभी फंक्शंस और वेरिएबल्स की सूची प्राप्त करें।

from math import *

def square_root(n):
    return sqrt(n)

# वर्तमान ग्लोबल सिंबल टेबल को डिक्शनरी के रूप में प्रिंट करें
print('List of Global symbols:\n', globals())

# वर्तमान लोकल सिंबल टेबल को डिक्शनरी के रूप में प्रिंट करें
print('\nList of Local symbols:\n', locals())

# वर्तमान लोकल स्कोप में नामों की सूची प्रिंट करें
print('\nList of names in current local scope:\n', dir())

नीचे हम देख सकते हैं, हम eval फंक्शन में globals वैल्यू को खाली डिक्शनरी के रूप में निर्दिष्ट कर सकते हैं:

>>> print(eval('dir()', {}))
['__builtins__']

आइए एक और उदाहरण देखें जहां हम मैथ मॉड्यूल से केवल कुछ मेथड्स तक पहुंच की अनुमति दे रहे हैं।

from math import *
for l in range(1, 4):
    func = input("Enter Math Function to Evaluate.\nAllowed Functions are: abs(x) and pow(x,y):\n")
    try:
        print(eval(func, {'absolute': abs, 'pow': pow}))
    except Exception as ex:
        print(ex)
        break
print('Done')

आउटपुट

Enter Math Function to Evaluate. Allowed Functions are: abs(x) and pow(x,y): abs(-74)
74
Enter Math Function to Evaluate. Allowed Functions are: abs(x) and pow(x,y): pow(2,7)
128.0
Enter Math Function to Evaluate. Allowed Functions are: abs(x) and pow(x,y): sqrt(47)
name 'sqrt' is not defined
Done

  1. पायथन टिंकर में फ़ंक्शन बाइंडिंग पायथन टिंकर में फ़ंक्शन बाइंडिंग

    पायथन में टिंकर एक GUI लाइब्रेरी है जिसका उपयोग विभिन्न GUI प्रोग्रामिंग के लिए किया जा सकता है। ऐसे एप्लिकेशन डेस्कटॉप एप्लिकेशन बनाने के लिए उपयोगी होते हैं। इस लेख में हम GUI प्रोग्रामिंग के एक पहलू को देखेंगे जिसे बाइंडिंग फ़ंक्शन कहा जाता है। यह इवेंट को फ़ंक्शन और मेथड से बांधने के बारे में है

  1. पायथन में issubset() फंक्शन पायथन में issubset() फंक्शन

    इस लेख में, हम पायथन स्टैंडर्ड लाइब्रेरी में उपलब्ध issubset() फंक्शन के कार्यान्वयन और उपयोग के बारे में जानेंगे।issubset() मेथड बूलियन True वापस करता है जब एक सेट के सभी तत्व दूसरे सेट में मौजूद होते हैं (जिसे तर्क के रूप में पारित किया जाता है) अन्यथा, यह बूलियन False वापस करता है।नीचे दिए गए चित

  1. पायथन में intersection() फ़ंक्शन पायथन में intersection() फ़ंक्शन

    इस लेख में, हम intersection() फ़ंक्शन के बारे में सीखेंगे जिसे किसी भी दिए गए सेट पर किया जा सकता है। गणित के अनुसार, intersection का अर्थ दो सेट्स से सामान्य तत्वों को ढूंढना है। सिंटैक्स .intersection( ...) वापसी मान तर्क के रूप में पास किए गए सेट्स में सामान्य तत्व। उदाहरण set_1 = {t,u,t,o