āĻāĻ¨ā§āĻ¨āĻ¯āĻŧāĻ¨ā§āĻ° āĻāĻ āĻŦāĻāĻ° āĻĒāĻ°, āĻĒāĻžāĻāĻĨāĻ¨ 3.11 āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻŋāĻ āĻāĻžāĻˇāĻžāĻ° āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻĒā§āĻ°āĻāĻžāĻļ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻļāĻžāĻāĻžāĻāĻŋ āĻĻā§āĻĄāĻŧ āĻŦāĻāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻ°āĻ āĻ¸āĻžāĻĄāĻŧā§ āĻ¤āĻŋāĻ¨ āĻŦāĻāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻž āĻĻā§āĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻĒāĻžāĻāĻĨāĻ¨ 3.12 āĻļāĻžāĻāĻžāĻ° āĻāĻ˛āĻĢāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ (āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻļāĻžāĻāĻžāĻ° āĻāĻžāĻ āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻļāĻžāĻāĻžāĻ° āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻĒāĻžāĻāĻ āĻŽāĻžāĻ¸ āĻāĻā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ˛āĻĢāĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻĒā§āĻāĻā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ ) Python 3.12 āĻļāĻžāĻāĻžāĻāĻŋ āĻ¸āĻžāĻ¤ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛āĻĢāĻž āĻ°āĻŋāĻ˛āĻŋāĻā§ āĻĨāĻžāĻāĻŦā§, āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻŦāĻžāĻ āĻ¸āĻāĻļā§āĻ§āĻ¨ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻŦāĻŋāĻāĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋ āĻ¤āĻŋāĻ¨ āĻŽāĻžāĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻŦā§, āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻāĻ°āĻž āĻšāĻŦā§ āĻāĻŦāĻ āĻŦāĻžāĻāĻā§āĻ˛āĻŋ āĻ āĻŋāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§āĨ¤ āĻĒā§āĻ°āĻāĻžāĻļā§āĻ° āĻāĻā§ āĻāĻ¤ āĻĻā§āĻ āĻŽāĻžāĻ¸ āĻ§āĻ°ā§, āĻļāĻžāĻāĻžāĻāĻŋ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻžāĻ°ā§āĻĨā§ āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧā§ āĻĨāĻžāĻāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻļā§āĻ˛āĻ¤āĻž āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻŦā§āĨ¤
āĻĒāĻžāĻāĻĨāĻ¨ 3.11-āĻ āĻ¨āĻ¤ā§āĻ¨ āĻ¸āĻāĻ¯ā§āĻāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤:
- āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻāĻžāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¨āĻ¤ā§āĻ¨ āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻ¤ā§āĻŦāĻ°āĻŖ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ā§āĻ° āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨, āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻĻā§āĻ°ā§āĻ¤ āĻĻā§āĻāĻžāĻˇā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° (x+x, x*x, xx, a[i], a[i] = z, f(arg) C( arg), o.method(), o.attr = z, *seq), āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻ¨ā§āĻĄāĻžāĻ° āĻāĻŦāĻ HotPy āĻĒā§āĻ°āĻā§āĻā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻāĻ°āĻž āĻ
āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻā§āĻļāĻ¨āĨ¤ āĻ˛ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, 10-60% āĻā§āĻĄ āĻāĻā§āĻ¸āĻŋāĻāĻŋāĻāĻļāĻ¨ā§āĻ° āĻāĻ¤āĻŋ āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻāĻĄāĻŧā§, āĻĒāĻžāĻāĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¨ā§āĻ¸ āĻā§āĻ¸ā§āĻ āĻ¸ā§āĻ¯ā§āĻā§ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž 25% āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¯āĻŧā§āĻā§āĨ¤
āĻŦāĻžāĻāĻāĻā§āĻĄ āĻā§āĻ¯āĻžāĻļāĻŋāĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ 10-15% āĻāĻŽāĻŋāĻ¯āĻŧā§āĻā§āĨ¤ āĻā§āĻĄ āĻāĻŦāĻ āĻŦāĻžāĻāĻāĻā§āĻĄ āĻ¸āĻš āĻ āĻŦāĻā§āĻā§āĻāĻā§āĻ˛āĻŋ āĻāĻāĻ¨ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻĨāĻŋāĻ°āĻāĻžāĻŦā§ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻā§āĻ¯āĻžāĻļā§ āĻĨā§āĻā§ āĻ¨āĻŋāĻˇā§āĻāĻžāĻļāĻŋāĻ¤ āĻŦāĻžāĻāĻāĻā§āĻĄāĻā§ āĻāĻ¨āĻŽāĻžāĻ°ā§āĻļāĻžāĻ˛āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§āĻ¯āĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻā§ āĻĻā§āĻ° āĻāĻ°āĻž āĻāĻŦāĻ āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ°āĻžāĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻĄ āĻ¸āĻš āĻŦāĻ¸ā§āĻ¤ā§āĻā§āĻ˛āĻŋāĻā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§āĻā§āĨ¤
- āĻĄāĻžāĻ¯āĻŧāĻžāĻāĻ¨āĻ¸ā§āĻāĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ˛ āĻā§āĻ°ā§āĻ¸āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¯ā§ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻž āĻāĻāĻ¨ āĻ¸āĻŽā§āĻāĻŦ (āĻāĻā§, āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻā§āĻ¨ āĻ āĻāĻļ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻŦāĻ˛ āĻ˛āĻžāĻāĻ¨āĻāĻŋ āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛)āĨ¤ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻā§āĻ°ā§āĻ¸ āĻ¤āĻĨā§āĻ¯ API āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§āĻ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ codeobject.co_positions() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦāĻž C API āĻĢāĻžāĻāĻļāĻ¨ PyCode_Addr2Location() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ā§ āĻĒā§āĻĨāĻ āĻŦāĻžāĻāĻāĻā§āĻĄ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻāĻŋ āĻ¨ā§āĻ¸ā§āĻā§āĻĄ āĻ āĻāĻŋāĻ§āĻžāĻ¨ āĻ āĻŦāĻā§āĻā§āĻ, āĻāĻāĻžāĻ§āĻŋāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻŦāĻ āĻāĻāĻŋāĻ˛ āĻāĻžāĻŖāĻŋāĻ¤āĻŋāĻ āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻāĻ°āĻ āĻ¸āĻšāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻā§āĻ°ā§āĻ¸āĻŦā§āĻ¯āĻžāĻ (āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻāĻ˛ āĻļā§āĻˇ): āĻĢāĻžāĻāĻ˛ "calculation.py", āĻ˛āĻžāĻāĻ¨ 54, āĻĢāĻ˛āĻžāĻĢāĻ˛ = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: āĻļā§āĻ¨ā§āĻ¯ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦāĻŋāĻāĻžāĻāĻ¨
- āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻā§āĻˇā§āĻ ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋāĻā§ āĻāĻāĻ¸āĻžāĻĨā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻžāĻ§āĻŋāĻ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻˇā§āĻ ā§āĻŦāĻĻā§āĻ§ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°ā§ āĻŦāĻžāĻĄāĻŧāĻžāĻ¤ā§, āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻĒā§āĻ°āĻāĻžāĻ° ExceptionGroup āĻāĻŦāĻ BaseExceptionGroup āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻĨā§āĻā§ āĻĒā§āĻĨāĻ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽāĻā§āĻ˛āĻŋ āĻšāĻžāĻāĻ˛āĻžāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ "āĻŦā§āĻ¯āĻ¤ā§āĻ¤*" āĻ āĻāĻŋāĻŦā§āĻ¯āĻā§āĻ¤āĻŋ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- add_note() āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ BaseException āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¸āĻ āĻ¨ā§āĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĒā§āĻ°āĻžāĻ¸āĻā§āĻāĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻž āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽāĻāĻŋ āĻ¨āĻŋāĻā§āĻˇā§āĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ¨āĻ¯āĻŧāĨ¤
- āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤ āĻļā§āĻ°ā§āĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻ¸ā§āĻŦ-āĻĒā§āĻ°āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ TypeVar āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¤āĻžāĻ° āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻŽāĻ¨ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻāĻž āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻā§āĻ˛āĻžāĻ¸ MyLock: def __enter__(self) -> Self: self.lock() return self
- āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ LiteralString āĻĒā§āĻ°āĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° LiteralString āĻĒā§āĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ˛āĻŋāĻāĻžāĻ°ā§āĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ (āĻ āĻ°ā§āĻĨāĻžā§, āĻŦā§āĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ āĻ˛āĻŋāĻāĻžāĻ°āĻžāĻ˛āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻŦāĻž āĻŽāĻŋāĻ˛āĻŋāĻ¤ str āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¨āĻ¯āĻŧ)āĨ¤ LiteralString āĻĒā§āĻ°āĻāĻžāĻ°āĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻĒāĻžāĻ¸āĻŋāĻāĻā§ āĻ¸ā§āĻŽāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻā§āĻ˛āĻŋāĻ° āĻāĻŋāĻā§ āĻ āĻāĻļā§āĻ° āĻāĻā§āĻāĻžāĻŽāĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻ¯āĻž āĻĻā§āĻ°ā§āĻŦāĻ˛āĻ¤āĻžāĻ° āĻĻāĻŋāĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, SQL āĻā§āĻ¯āĻŧā§āĻ°āĻŋ āĻŦāĻž āĻļā§āĻ˛ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ def run_query(sql: LiteralString) -> ... ... def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> None: run_query ("āĻāĻžāĻ¤ā§āĻ°āĻĻā§āĻ° āĻĨā§āĻā§ * āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨") # āĻ āĻŋāĻ āĻāĻā§ āĻ°āĻžāĻ¨_āĻā§āĻ¯āĻŧā§āĻ°āĻŋ (āĻāĻā§āĻˇāĻ°āĻŋāĻ_āĻ¸ā§āĻā§āĻ°āĻŋāĻ) # āĻ āĻŋāĻ āĻāĻā§ āĻ°āĻžāĻ¨_āĻā§āĻ¯āĻŧā§āĻ°āĻŋ ("āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ * āĻĢā§āĻ°āĻŽ" + āĻāĻā§āĻˇāĻ°āĻŋāĻ_āĻ¸ā§āĻā§āĻ°āĻŋāĻ) # āĻ āĻŋāĻ āĻāĻā§ āĻ°āĻžāĻ¨_āĻā§āĻ¯āĻŧā§āĻ°āĻŋ (āĻ¸ā§āĻŦā§āĻā§āĻāĻžāĻāĻžāĻ°ā§_āĻ¸ā§āĻā§āĻ°āĻŋāĻ) # āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻžāĻ¨_āĻā§āĻ¯āĻŧā§āĻ°āĻŋ (# āĻ¤ā§āĻ°ā§āĻāĻŋ f"āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ * āĻāĻžāĻ¤ā§āĻ°āĻĻā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¨āĻžāĻŽ = {āĻ¸ā§āĻŦā§āĻā§āĻāĻžāĻāĻžāĻ°ā§_āĻ¸ā§āĻā§āĻ°āĻŋāĻ}")
- TypeVarTuple āĻāĻžāĻāĻĒ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž TypeVar-āĻāĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻž āĻāĻ āĻĒā§āĻ°āĻāĻžāĻ°āĻā§ āĻāĻāĻžāĻ° āĻāĻ°ā§ āĻ¨āĻž, āĻŦāĻ°āĻ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻŋāĻāĻžāĻ°ā§ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ°āĻāĻžāĻ°āĻā§ āĻāĻāĻžāĻ° āĻāĻ°ā§āĨ¤
- āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ¤ā§ TOML āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ āĻĒāĻžāĻ°ā§āĻ¸ āĻāĻ°āĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻš tomllib āĻŽāĻĄāĻŋāĻāĻ˛ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
- āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻā§āĻāĻŋāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻžāĻāĻĒ āĻāĻ°āĻž āĻ āĻāĻŋāĻ§āĻžāĻ¨ā§āĻ° (TypedDict) āĻĒā§āĻĨāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ˛ā§āĻŦā§āĻ˛āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻšā§āĻ¨āĻŋāĻ¤ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ (āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻˇāĻŋāĻ¤ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¯āĻĻāĻŋ āĻŽā§āĻ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ°āĻāĻŋ False āĻ āĻ¸ā§āĻ āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ)āĨ¤ class Movie(TypedDict): title: str year: NotRequired[int] m1: Movie = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # āĻ āĻŋāĻ āĻāĻā§ (āĻŦāĻāĻ°ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻāĻā§āĻāĻŋāĻ) m3: āĻŽā§āĻāĻŋ = {âāĻŦāĻāĻ°â: 2022} # āĻ¤ā§āĻ°ā§āĻāĻŋ, āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋ)
- TaskGroup āĻā§āĻ˛āĻžāĻ¸ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻāĻ¨āĻā§āĻā§āĻ¸āĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻāĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ asyncio āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒā§āĻ° āĻāĻžāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒā§ āĻāĻžāĻ āĻ¯ā§āĻ āĻāĻ°āĻž create_task() āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("āĻāĻāĻ¯āĻŧāĻāĻŋ āĻāĻžāĻāĻ āĻāĻāĻ¨ āĻ¸āĻŽā§āĻĒāĻ¨ā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§ āĨ¤")
- āĻā§āĻ˛āĻžāĻ¸, āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻŦāĻ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ @dataclass_transform āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻžāĻāĻĒ āĻā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ āĻŦāĻā§āĻā§āĻāĻāĻŋāĻā§ @dataclasses.dataclass āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻ¨ā§āĻā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖā§, CustomerModel āĻā§āĻ˛āĻžāĻ¸, āĻĒā§āĻ°āĻāĻžāĻ°āĻā§āĻ˛āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, @dataclasses.dataclass āĻĄā§āĻā§āĻ°ā§āĻāĻ° āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ¸ā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ __init__ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻ¯āĻž āĻāĻāĻĄāĻŋ āĻāĻŦāĻ āĻ¨āĻžāĻŽ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§āĨ¤ @dataclass_transform() class ModelBase: ... class CustomerModel(ModelBase): id: int name: str
- āĻ°ā§āĻā§āĻ˛āĻžāĻ° āĻāĻā§āĻ¸āĻĒā§āĻ°ā§āĻļāĻ¨ā§, āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻ āĻā§āĻ°ā§āĻĒāĻŋāĻ (?>...)) āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻāĻŦāĻ āĻ āĻ§āĻŋāĻāĻžāĻ°ā§ āĻā§āĻ¯āĻŧāĻžāĻ¨ā§āĻāĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ° (*+, ++, ?+, {m,n}+) āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- sys.path āĻ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĢāĻžāĻāĻ˛ āĻĒāĻžāĻĨā§āĻ° āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ "-P" āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻāĻŦāĻ PYTHONSAFEPATH āĻāĻ¨āĻāĻžāĻ¯āĻŧāĻ°āĻ¨āĻŽā§āĻ¨ā§āĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻāĻāĻ¨ā§āĻĄā§āĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ py.exe āĻāĻāĻāĻŋāĻ˛āĻŋāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯āĻāĻžāĻŦā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, "-V:" āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤ / " āĻāĻžāĻĄāĻŧāĻžāĻ "- . "
- C API-āĻāĻ° āĻ āĻ¨ā§āĻ āĻŽā§āĻ¯āĻžāĻā§āĻ°ā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦāĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻ āĻāĻ¨āĻ˛āĻžāĻāĻ¨ āĻĢāĻžāĻāĻļāĻ¨ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
- uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, āĻāĻŦāĻ sunau āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋāĻā§ āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻāĻŦāĻ PHOT āĻ āĻĒāĻ¸āĻžāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻŦā§ 3.13 āĻ°āĻŋāĻ˛āĻŋāĻāĨ¤ PyUnicode_Encode* āĻĢāĻžāĻāĻļāĻ¨ āĻ¸āĻ°āĻžāĻ¨ā§ āĻšāĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻ¤ā§āĻ¸: opennet.ru