python - tutorial - একটি পরিবর্তনশীল সংখ্যা একটি ফাংশন পাস করা যাবে?
python tutorial pdf (4)
C বা C ++ এ Varargs ব্যবহার করার অনুরূপ ভাবে:
fn(a, b)
fn(a, b, c, d, ...)
অন্যান্য চমৎকার পোস্ট যোগ করা হচ্ছে।
কখনও কখনও আপনি আর্গুমেন্ট সংখ্যা উল্লেখ করতে চান না এবং তাদের জন্য কীগুলি ব্যবহার করতে চান (যদি অভিধানে একটি যুক্তি পাস করা হয় তবে কম্পাইলার অভিযোগ করবে)।
def manyArgs1(args):
print args.a, args.b #note args.c is not used here
def manyArgs2(args):
print args.c #note args.b and .c are not used here
class Args: pass
args = Args()
args.a = 1
args.b = 2
args.c = 3
manyArgs1(args) #outputs 1 2
manyArgs2(args) #outputs 3
তারপর আপনি মত জিনিস করতে পারেন
myfuns = [manyArgs1, manyArgs2]
for fun in myfuns:
fun(args)
পোস্ট unwinds যোগ করা হচ্ছে:
আপনি একাধিক কী-মান args পাঠাতে পারেন।
def myfunc(**kwargs):
# kwargs is a dictionary.
for k,v in kwargs.iteritems():
print "%s = %s" % (k, v)
myfunc(abc=123, efh=456)
# abc = 123
# efh = 456
এবং আপনি দুটি মিশ্রিত করতে পারেন:
def myfunc2(*args, **kwargs):
for a in args:
print a
for k,v in kwargs.iteritems():
print "%s = %s" % (k, v)
myfunc2(1, 2, 3, banan=123)
# 1
# 2
# 3
# banan = 123
তাদের উভয়ই ঘোষণা করা উচিত এবং সেই আদেশে বলা হয়, ফাংশন স্বাক্ষরটি * args, ** kwargs, এবং এই ক্রমটিতে বলা প্রয়োজন।
হ্যাঁ।
এটি সহজ এবং আপনি কীওয়ার্ড আর্গুমেন্টগুলি উপেক্ষা করলে কাজ করে:
def manyArgs(*arg):
print "I was called with", len(arg), "arguments:", arg
>>> manyArgs(1)
I was called with 1 arguments: (1,)
>>> manyArgs(1, 2,3)
I was called with 3 arguments: (1, 2, 3)
আপনি দেখতে পারেন, পাইথন আপনাকে সমস্ত আর্গুমেন্ট দিয়ে একটি একক টিপল দেবে।
কীওয়ার্ড আর্গুমেন্টগুলির জন্য আপনাকে স্কুরমেডেলের উত্তর হিসাবে দেখানো পৃথক পৃথক যুক্তি হিসাবে গ্রহণ করতে হবে।
def f(dic):
if 'a' in dic:
print dic['a'],
pass
else: print 'None',
if 'b' in dic:
print dic['b'],
pass
else: print 'None',
if 'c' in dic:
print dic['c'],
pass
else: print 'None',
print
pass
f({})
f({'a':20,
'c':30})
f({'a':20,
'c':30,
'b':'red'})
____________
উপরের কোড আউটপুট হবে
None None None
20 None 30
20 red 30
এটি একটি অভিধানের মাধ্যমে পরিবর্তনশীল আর্গুমেন্ট পাস হিসাবে ভাল