python - tutorial - একটি পরিবর্তনশীল সংখ্যা একটি ফাংশন পাস করা যাবে?




python tutorial pdf (4)

অন্যান্য চমৎকার পোস্ট যোগ করা হচ্ছে।

কখনও কখনও আপনি আর্গুমেন্ট সংখ্যা উল্লেখ করতে চান না এবং তাদের জন্য কীগুলি ব্যবহার করতে চান (যদি অভিধানে একটি যুক্তি পাস করা হয় তবে কম্পাইলার অভিযোগ করবে)।

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)

C বা C ++ এ Varargs ব্যবহার করার অনুরূপ ভাবে:

fn(a, b)
fn(a, b, c, d, ...)

পোস্ট 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

এটি একটি অভিধানের মাধ্যমে পরিবর্তনশীল আর্গুমেন্ট পাস হিসাবে ভাল







python