एक साधारण उदाहरण के रूप में, एक उपयोगिता विधि है, जो एक अजगर वस्तु input_obj
स्वीकार करता है, और out_type
, एक अजगर type
कन्वर्ट करने के लिए (समान किरदार)खोजें कि कौन सा अन्य अजगर प्रकार किसी वस्तु को परिवर्तित कर सकते हैं?
def convert_obj(input_obj,out_type):
-Examples में वस्तु मान
convert_obj('2','int')
#returns 2
convert_obj([1,2,3],'tuple')
#returns (1,2,3)
विधि केवल विशिष्ट प्रकारों की वस्तुओं का समर्थन करती है जैसे str, list, tuple, और तब जांचता है कि क्या निर्दिष्ट आउटटाइप में परिवर्तित किया जा सकता है।
supported_conversions = {
tuple: [str, list, set],
str: [tuple, float, list, long, int, set],
float: [str, long, int],
list: [tuple, str, set],
long: [str, float, int],
dict: [tuple, str, list, set],
int: [str, float, long],
set: [tuple, str, list],
}
supported_conversions
में कुंजी input_obj के लिए अनुमति दी प्रकार हैं: इस विधि में नियम पुस्तिका मौजूद है।
प्रश्न: इसके अलावा कोशिश का उपयोग कर/सभी संभव अजगर प्रकार की एक सूची से अधिक को छोड़कर प्रत्येक प्रकार का एक नमूना वस्तु कन्वर्ट करने के लिए, और फिर देखने से क्या कर रहे हैं वैध, उदा [सूची, dict, tuple, int, tuple, set] के खिलाफ str
रूपांतरण की जांच करना supported_conversions
को अपनी चाबियाँ देने के लिए पाइथन में एक बेहतर तरीका है?
नोट: प्रकार रूपांतरण पर अन्य अपवाद को अनदेखा किया जाना चाहिए। उदाहरण के लिए "1" को पूर्णांक 1 में परिवर्तित किया जा सकता है, लेकिन "XYZ" नहीं हो सकता है। लेकिन यह अभी भी का अर्थ है str-> int एक वैध संभव रूपांतरण है।
* "क्या पैनथन में एक समर्थित तरीका है, जो कि समर्थित कुंजीवर्क्स को उत्पन्न करने के लिए है?" * - यह बिल्कुल इस बात पर निर्भर करता है कि यह कार्य कैसे काम करता है! हम नहीं जानते कि इसके पीछे तर्क क्या है जो एक अभिसरण या दूसरे को अनुमति दे सकता है। – poke
@poke मुख्य रूप से एक अजगर वस्तु का एक अन्य प्रकार में रूपांतरण टाइप करते हैं, जब यह ज्ञात होता है कि इसके डेटा के आधार पर यह सही ढंग से परिवर्तित हो जाएगा, लेकिन क्वेरी जानना है कि इसे किस प्रकार के संभावित रूप में परिवर्तित किया जा सकता है। – DhruvPathak
लेकिन * प्रकार रूपांतरण कैसे काम करता है? मैं आसानी से * किसी भी * प्रकार * कुछ * में परिवर्तित करने के लिए आसानी से सोच सकता हूं। यह प्रकार रूपांतरण एल्गोरिदम है (यानी आपका 'convert_obj' फ़ंक्शन) जो पूरी तरह से निर्णय लेता है कि यह किस प्रकार के रूपांतरणों का समर्थन करता है। – poke