کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش Generator Expressions در پایتون


اصطلاحات مولدها در زبان Python


برخی مولدهای ساده را می توان با استفاده از نگارش مشابه مفاهیم لیست (اما از پراتز() به جای براکت []استفاده شود)، به طور خلاصه به عنوان اصطلاحات کد کرد. این اصطلاحات برای شرایطی طراحی شده اند که مولد بلافاصله توسط یک تابع محصور مورد استفاده قرار می گیرد. اصطلاحات مولد نسبت به تعاریف کامل مولد، بیشتر فشرده و کمتر متنوع هستند. علاوه بر آن، آنها نسبت به مفاهیم لیست برابر، بیشتر دوستدار حافظه هستند. مثال ها:

    >>> sum(i*i for i in range(10))                 # sum of squares
    285
    
    >>> xvec = [10, 20, 30]
    >>> yvec = [7, 5, 3]
    >>> sum(x*y for x,y in zip(xvec, yvec))         # dot product
    260
    
    >>> unique_words = set(word for line in page  for word in line.split())
    
    >>> valedictorian = max((student.gpa, student.name) for student in graduates)
    
    >>> data = 'golf'
    >>> list(data[i] for i in range(len(data)-1, -1, -1))
    ['f', 'l', 'o', 'g']

توجه !

به جز برای یک مورد. اشیای ماژول یک ویژگی پنهان به نام __dict__ دارند که دیکشنری مورد استفاده برای پیاده سازی فضای نام ماژول را باز می گرداند. نام __dict__ یک ویژگی است اما یک نام سراسری نیست. واضح است که استفاده از این ، تجرید (abstraction) پیاده سازی فضای نام را نقض می کند، و باید برای چیزهایی مانند اشکال زدایی های post-mortem محدود شود.

1403/05/29 2418 647
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...