मैं वर्तमान में assert
कथन का उपयोग कर रहा हूं isinstance
के साथ। क्योंकि datetime
date
का उप-वर्ग है, मुझे यह भी जांचना होगा कि यह datetime
का उदाहरण नहीं है। निश्चित रूप से एक बेहतर तरीका है?मुझे यह कैसे जांचना चाहिए कि दिया गया तर्क एक datetime.date ऑब्जेक्ट है?
from datetime import date, datetime
def some_func(arg):
assert isinstance(arg, date) and not isinstance(arg, datetime),\
'arg must be a datetime.date object'
# ...
मुझे लगता है कि बहुरूपता का विचार यह है कि उप-वर्गों के उदाहरण बेस क्लास के उदाहरणों के साथ संगत होते हैं। इस प्रकार, यह केवल यह समझ में आता है कि 'डेटटाइम' ऑब्जेक्ट्स 'दिनांक' के उदाहरण हैं, इसलिए मुझे नहीं लगता कि आप जो करने की कोशिश कर रहे हैं, उसके लिए एक बेहतर तरीका है। – avpx