पायलिंट ने मुझे बताया कि मेरी कक्षा विधियों में से एक को एक विधि होने की आवश्यकता नहीं है, लेकिन केवल कक्षा में एक समारोह हो सकता है क्योंकि उसने किसी वर्ग विशेषता का उपयोग नहीं किया है। इससे मुझे चीजें होती हैं जो मैंने सोचा था कि "बुरा" था, लेकिन शायद वे पाइथोनिक हैं। क्या निम्न कोड है जो पाइथन हमें करना चाहता है?क्या यह क्लास विधि के अंदर फ़ंक्शन को परिभाषित करने के लिए अन-पायथनिक है?
class TestClass(ParentClass):
def __init__(self):
def callbackfunction(text):
print("hello")
ParentClass.map_event_to_callback(ParentClass.event, callbackfunction)
जहां ParentClass.event का उत्सर्जन करता है अपनी कॉलबैक करने text
, लेकिन हम अभी बजाय कि प्रिंट "hello"
ध्यान नहीं देंगे। और भी आसान:
class TestClass():
def __init__(self, text):
def printhello(text):
print("hello")
printhello(text)
संभालने के बारे में मैं text
या printhello
__init__
के बाद परवाह नहीं है।
नहीं, ठीक है। आप भी 'लैम्ब्डा' का उपयोग कर सकते हैं। –
किसी विधि के भीतर एक फ़ंक्शन वास्तव में फ़ंक्शन के भीतर किसी फ़ंक्शन से अलग नहीं होता है। कभी-कभी यह समझ में आता है, और जब ऐसा होता है, तो इसका उपयोग करने का कोई कारण नहीं है। –
धन्यवाद, @MartijnPieters और @TomKarzes! एक वर्ग '__init__' के अंदर एक कॉलबैक फ़ंक्शन डालने से मुझे गंदा महसूस हुआ, लेकिन मुझे नहीं पता था कि इससे बचने के लिए तकनीकी कारण था या नहीं। @MartijnPieters, अगर आप अपनी टिप्पणी का उत्तर देते हैं तो मैं इसे चुन सकता हूं। –