https://arsalanse.ir
مهم ترین تغییرات پایتون 3.7.1 ?
- Add new time functions with nanosecond resolution
import time
time.clock_gettime_ns()
time.clock_settime_ns()
time.monotonic_ns()
time.perf_counter_ns()
time.process_time_ns()
time.time_ns()
تابعی که برای زمان وجود داشت time.time() بود که عددی اعشاری را برمیگرداند...
اما با تکنیک جدید نانوثانیه این مشکل برطرف شده، و در صورت نیاز محاسبات خیلی دقیقی رو میشه با این تکنیک انجام داد
- Typing Enhancements
from typing import List
Vector = List[float]
def scale(scalar: float, vector: Vector) -> Vector:
return [scalar * num for num in vector]
# typechecks; a list of floats qualifies as a Vector.
new_vector = scale(2.0, [1.0, -4.2, 5.4])
پایتون بی نیاز از تعیین نوع داده متغییر هاست، ولی به گفته برخی باعث پیچیده تر شدن و ناخوانی کُد میشود. این سینتکس که در سری نسخه های پایتون 3 موجود بود در این بروزرسانی عملکرد بهتری پیدا کرده.
پایتون در زمان اجرا نوع متغییر را چک نمیکند(!)
from typing import NewType
UserId = NewType('UserId', int)
ProUserId = NewType('ProUserId', UserId)
- Built-in breakpoint()
breakpoint()
print("one step")
print("second step")
این تابع که دیباگ کردن برنامه استفاده میشد اکنون به صورت یک تابع داخل هسته پایتون قرار داده شده و دیگر نیاز به فراخوانی pdb نیست!
(پ.ن: در محیط pdb از کامند help برای دیدن لیست کار هایی که قادر به انجام هستین استفاده کنید و یا به سادگی کامند next را تایپ کنید!)
امکانات مهم دیگه که در این بروزرسانی میشه مشاهده کرد Await expression و Forced UTF-8 Runtime Mode هستند
خوشحال میشم اگه اشکالی در نوشته بالا هست بهم گوش زد بشه، و یا حتی باهم گپی درمورد پایتون داشته باشیم :)
برای مطالعه بیشتر: لینک
منابع:
مطلبی دیگر از این انتشارات
مبارزه با DRM ! حفظ امنیت تو
مطلبی دیگر از این انتشارات
تجربه من با لینوکس
مطلبی دیگر از این انتشارات
چهار راه برای تعیین بهترین زبان توسعه وب