Python 3.13�ł�locals���̋����ɂ��ĕW�������Ȃ��ꂽ�B����ɂ��A�����R�[�h�����s�����Ƃ��ɂ��̋������ȑO�̃o�[�W�����Ƃ͈قȂ�ꍇ������B���̂��Ƃ𒆐S�Ɋ���̕ύX�_�i�����[�X�X�P�W���[���̕ύX�Ȃǁj�����グ�Ă������B
�@�O����Python 3.13�Ŏ����I�ɃT�|�[�g���ꂽJIT�R���p�C���@�\�ɂ��Ē��ׂ��B����͂��̑��̐V�@�\�̒������������Ă������Ƃɂ���B
�@locals���͌��ݎ��s����Ă�����s�t���[���i���W���[�����x���A���A���\�b�h�Ȃǁj�ɂ����郍�[�J���ϐ��Ƃ��̒l�̑g�݂�v�f�Ƃ��鎫���i�}�b�s���O�j��߂�l�Ƃ���BPython 3.12�������ȃh�L�������g�͎��̂悤�ɂȂ��Ă���B
�@���߂ɂ���ʂ�A���̎����̓��e��ύX���Ă��C���^�[�v���^���g�p���郍�[�J���ϐ��̒l�ɂ��ꂪ�e���������Ȃ��_�͊o���Ă����K�v������B�R�[�h�Ŏ����Ǝ��̒ʂ肾�B
def f():
x = 1
locals()['x'] = 10
print(x)
f()
�@����̓��[�J���ϐ��̒l�ڏ���������̂ł͂Ȃ��Alocals���̖߂�l�ł��鎫������Ă��̃L�['x'�̒l��ύX����R�[�h���BPython 3.12�ł̎��s���ʂ��ȉ��Ɏ����B
�@��̂悤�Ȍ��ʂɂȂ�̂́Apython.org�Ŕz�z����Ă���CPython�ł̋����ł���APython 3.12�܂ł͎��ۂɂǂ��Ȃ邩��Python�����ł̒�`�Ɉˑ����Ă����B�������APython 3.13�ł�locals���Ƃ��̖߂�l�ɑ���ύX���ǂ̂悤�ɂȂ邩���APEP 667�ɂ���ĕW�������ꂽ�B�ȒP�ɂ����ƁA�����̃X�R�[�v�ł͂���܂ł�CPython�̋������W���̋����Ƃ��ĕW�������ꂽ�B�������A����W�F�l���[�^�A�R���[�`���A����\�L�A�W�F�l���[�^���̃X�R�[�v�i������uoptimized scope�v�ƌĂԁj�ɂ��ẮA���݂̃��[�J���ϐ��̃X�i�b�v�V���b�g���߂�l�ƂȂ�A�����ύX���Ă����ۂ̃��[�J���ϐ��̒l�ɂ͉��̉e�����Ȃ����Ƃ����m�����ꂽ�B
�@Python 3.13�ł�locals���̃h�L�������g�͎��̂悤�ɂȂ��Ă���B
�@Python 3.12�܂ł�locals���̃h�L�������g�Ɣ�ׂ�ƋL�q�����Ȃ葝���A�u���̏ꍇ�ɂ͂����Ȃ�v�Ƃ��������Ƃ����m�ɂȂ��Ă��邱�Ƃ�������B
�@���̂��ƂɊ֘A���āA�t���[���I�u�W�F�N�g�ɂ��ύX������B�t���[���I�u�W�F�N�g�Ƃ́A�v���O�����̊J�n������Ȃǂ̌Ăяo�����ɐV���ɍ쐬�������̂ŁAPython�̃R�[�h�����s�����ŕK�v�ȏ��i�R�[�h�I�u�W�F�N�g��[�J���ϐ��A�O���[�o���ϐ��A�Ăяo�����̃t���[�����Ȃǁj���i�[���A�f�o�b�O��g���[�X�̖ړI�Ŏg���邱�Ƃ������B���̃t���[���I�u�W�F�N�g�ɂ����q�ׂ��悤�Ƀ��[�J���ϐ��Ɋւ����܂܂�Ă��āA������f_locals�����Ƃ��Ď擾�ł���B
�@�Ⴆ�A�ȉ��̃R�[�h��sys���W���[��������_getframe���Ńt���[���I�u�W�F�N�g���擾���āA����f_locals��������āA���[�J���ϐ��̒l��ύX���悤�Ƃ�����̂��B
import sys
def f():
x = 1
fr = sys._getframe()
fr.f_locals['x'] = 10
print(x)
f()
�@�����Python 3.12�Ŏ��s����Ǝ��̂悤�Ȍ��ʂɂȂ�B
�@����̓��[�J���ϐ��̈ꗗ��locals���Ŏ擾�����ꍇ�Ɠ��l�̌��ʂ��B����A��̃R�[�h��Python 3.13�Ŏ��s����Ǝ��̂悤�ɂȂ�B
�@Python 3.12�ł̎��s���ʂƂ͈قȂ�u10�v���o�͂��ꂽ�B�܂�Af_locals������������[�J���ϐ��̒l�̕ύX�́A���݂̎��s�t���[���ɂ��郍�[�J���ϐ��̒l�ɉe������Ƃ������Ƃ��B
�@���̋����ɂ��āAPEP 667�ł͎��̂悤�ɏq�ׂ��Ă���i�M�҂ɂ���j�B
�@���X�R�[�v�i���L�͂�optimized scope�j�ɂ����āAf_locals�����͌��݂̃��[�J���ϐ��ꗗ�ɑ���r���[�i���C�g�X���[�v���L�V�j�ƂȂ�Af_locals��������ă��[�J���ϐ��̒l��ύX����ƁA����͑����Ƀ��[�J���ϐ��ɉe������悤�ɂȂ����B���ہA���X�R�[�v��f_locals�����̌^�ׂ�ƒP�Ȃ鎫���ł͂Ȃ��Ȃ��Ă���B
import sys
def f():
fr = sys._getframe()
print(type(fr.f_locals))
f()
�@���̃R�[�h��Python 3.12�Ŏ��s����ƁAf_locals�����͒ʏ�̎����ł��邱�Ƃ�������B
�@����APython 3.13�ł��̃R�[�h�����s����ƁAf_locals������FrameLocalsProxy�I�u�W�F�N�g�ɂȂ��Ă���B
�@locals���̋������W�������ꂽ���ƂŁA����܂łƂ̓R�[�h�̎��s���ʂ��قȂ�悤�ɂȂ邱�Ƃ�����B�ȉ��͂��̗Ⴞ�B
def f():
print(locals())
exec('print(locals()); x = 1; print(locals())')
print(locals())
f()
�@�����exec���ŕϐ�x���`���A���̑O���locals�����Ăяo���āA���[�J���ϐ��̈ꗗ���擾������̂��BPython 3.12�Ŏ��s����ƁA���̂悤�Ȍ��ʂɂȂ�B
�@�������APython 3.13�ł͂��̂悤�ȕύX�͏�ɖ��������悤�ɂȂ����B
�@���̂悤�ȋ����̈Ⴂ�ɂ͒��ӂ���K�v������B
�@Python 3.9����̓T�|�[�g���Ԃ͑S�̂�5�N�ƂȂ��Ă��āA���̓���͎��̂悤�ɂȂ��Ă����B
�@�T�|�[�g���Ԃ��S�̂�5�N�Ȃ��Ƃ͕ς��Ȃ����APython 3.13�ȍ~�̓t���T�|�[�g�̊��Ԃ�2�N�ԁi24�J���j�ɉ�������A���̕��A�Z�L�����e�B�t�B�b�N�X�̊��Ԃ�3�N�i36�J���j�ɒZ�k���ꂽ
�@�����Python 3.13�ȍ~�̘b�ł���APython 3.9����Python 3.12�Ɋւ��Ă̓t���T�|�[�g��18�J���A�Z�L�����e�B�t�B�b�N�X��42�J���̂܂܂ł��邱�Ƃɂ͒��ӂ��悤�B
�@�t���T�|�[�g���Ԃ����т����ƂŁA���������g���Ă���o�[�W������Python����蒷�����S���Ďg�p�ł���悤�ɂȂ�l������͂����B
�@Python�ł͌����ɃT�|�[�g�����v���b�g�t�H�[���͊���̊K�w�itier�j�ɕ��ނ���Ă���B
tier | ���e |
---|---|
tier 1 | �S�Ă̊J���҂�tier 1�Ɋ܂܂��v���b�g�t�H�[�������������삷�邱�Ƃɂ��ĐӔC�����B�����Ɋ܂܂��v���b�g�t�H�[���p�̃r���h�̎��s�̓����[�X���u���b�N���� |
tier 2 | ���Ȃ��Ƃ�2�l�̃R�A�J���҂����̃v���b�g�t�H�[���̃T�|�[�g�Ɋ��蓖�Ă���B�����Ɋ܂܂��v���b�g�t�H�[���p�̃r���h�̎��s�̓����[�X���u���b�N���� |
tier 3 | ���Ȃ��Ƃ�1�l�̃R�A�J���҂����̃v���b�g�t�H�[���̃T�|�[�g�Ɋ��蓖�Ă���B��肪�����Ă������[�X�̓u���b�N����Ȃ� |
Python�̃v���b�g�t�H�[���T�|�[�g�ނ���tier |
�@�ŏd�v�Ȃ̂�tier 1�Ɋ܂܂��v���b�g�t�H�[�����B�Ⴆ�AWindows��macOS�ALinux������CPython��tier 1�ŃT�|�[�g�����B
�@�����āAPython 3.13�ł�iOS��Android�������ɃT�|�[�g�����v���b�g�t�H�[���ƂȂ����B�������A���݂�tier 3�ł̃T�|�[�g�ƂȂ��Ă���B
�@���̑��ɂ��V�@�\��ύX�_�����X����B�M�҂̖ڂɕt�������̂�������āAPython 3.13�̐V�@�\�ɂ��Ă̘A�ڂ��I��邱�Ƃɂ��悤�B
�@random���W���[���̃R�}���h���C���C���^�t�F�[�X�ɂ��Ă͊ȒP�ɐ������Ă������B�ȒP�ɂ����Έȉ���3�̎g����������B
�@1�ڂ�random.choice���\�b�h���g���āA�I�����̒�����ǂꂩ1��I������B2�ڂ�1����w�肳�ꂽ�����l�͈̔͂��烉���_���Ȑ����l��I������B3�ڂ�random.uniform���\�b�h���g����0����w�肳�ꂽ���������_���l�܂ł͈̔͂��畂�������_���l��I������i��l���z�j�B
�@�ȉ��Ɏ��ۂɎ����Ă����������B
�@�������1�����w�肵���ꍇ�ɂ́A���̒�����1�������I���̂ł͂Ȃ��A��ɂ��̕����I���̂Œ��ӂ��Ăق����B�ӂ��͂�ɉ��̂��ٓ��������ƔY�ނƂ��ɂ͂��̃R�}���h���C���C���^�t�F�[�X�����ɗ���������Ȃ��B
���S�Ҍ����A�f�[�^���́EAI�E�@�B�w�K�EPython�̕����@�@��IT��Deep Insider�Ŋw�ڂ�
Copyright© Digital Advantage Corp. All Rights Reserved.