Python มีคำสั่ง exec ที่ใช้ในการแทนค่าตัวแปรแล้วรันคำสั่งแบบพลวัต (dynamicly)
บันทึกพฤติกรรมของ exec ไว้ดังนี้
>>> var='123' >>> a='print %s' % (var) >>> exec a # OR exec(a) 123
>>> var=456 >>> exec a 123 >>> a='print %s' % (var) >>> exec a 456
>>> var='abc' >>> a='print %s' % (var) >>> exec a Traceback (most recent call last): File "<stdin>", line 1, in ? File "<string>", line 1, in ? NameError: name 'abc' is not defined >>> var='"abc"' >>> a='print %s' % (var) >>> exec a abc
ยกเว้นกรณีคำสั่ง import ต้องใช้แบบปกติ
>>> var='re' >>> a='import %s' % (var) >>> exec a >>> dir(re) ['DOTALL', 'I', 'IGNORECASE', 'L', 'LOCALE', 'M', 'MULTILINE', 'S', 'U', 'UNICODE', 'VERBOSE', 'X', '__all__', '__builtins__', '__doc__', '__file__', '__name__', 'compile', 'engine', 'error', 'escape', 'findall', 'finditer', 'match', 'purge', 'search', 'split', 'sub', 'subn', 'template']