مشخصات مقاله
-
647
-
0.0
-
2418
-
0
-
0
آموزش 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 محدود شود.