'%s' % 100000
সংকলক দ্বারা মূল্যায়ন করা হয় এবং রান-টাইমে স্থির সমান equivalent
>>> import dis
>>> dis.dis(lambda: str(100000))
8 0 LOAD_GLOBAL 0 (str)
3 LOAD_CONST 1 (100000)
6 CALL_FUNCTION 1
9 RETURN_VALUE
>>> dis.dis(lambda: '%s' % 100000)
9 0 LOAD_CONST 3 ('100000')
3 RETURN_VALUE
%
একটি রান-টাইম এক্সপ্রেশন সহ (উল্লেখযোগ্যভাবে) দ্রুত নয় str
:
>>> Timer('str(x)', 'x=100').timeit()
0.25641703605651855
>>> Timer('"%s" % x', 'x=100').timeit()
0.2169809341430664
str
ডিয়েট্রিচইপ বলেছেন যে এটি এখনও কিছুটা ধীর গতিযুক্ত নোট করুন , কারণ এটি দেখার জন্য str
এবং ফাংশন কল অপারেশনগুলির সাথে জড়িত রয়েছে, যখন %
একটি তাত্ক্ষণিক বাইটকোড সংকলন করা হয়েছে:
>>> dis.dis(lambda x: str(x))
9 0 LOAD_GLOBAL 0 (str)
3 LOAD_FAST 0 (x)
6 CALL_FUNCTION 1
9 RETURN_VALUE
>>> dis.dis(lambda x: '%s' % x)
10 0 LOAD_CONST 1 ('%s')
3 LOAD_FAST 0 (x)
6 BINARY_MODULO
7 RETURN_VALUE
অবশ্যই উপরেরটি আমি যে সিস্টেমে পরীক্ষিত হয়েছিল তার জন্য সত্য (সিপিথন ২.7); অন্যান্য বাস্তবায়ন পৃথক হতে পারে।
'{}'.format(100000)