Форум сайта python.su
eval не работает:
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys import PyQt4.QtCore as QtCore import PyQt4.QtGui as QtGui class Frame_CheckBox_Edit(QtGui.QFrame): def __init__(self, parent = None): str3 = "first" # Работает self.first_label = QtGui.QLabel(str3) # Не работает eval('self.first_label = QtGui.QLabel(str3)') pass class MyWindow(QtGui.QWidget): def __init__(self, parent = None): QtGui.QWidget.__init__(self, parent) self.control_frame = Frame_CheckBox_Edit() app = QtGui.QApplication(sys.argv) window = MyWindow() window.show() sys.exit(app.exec_())
self.first_label = QtGui.QLabel(str3)
^
SyntaxError: invalid syntax
Отредактировано alien308 (Дек. 20, 2014 22:43:50)
Офлайн
>>> x = 2 >>> eval('x+2') 4 >>> exec('x+1') >>> eval('x = 4') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1 x = 4 ^ SyntaxError: invalid syntax >>> exec('x = 4') >>> x 4 >>> x = eval('5') >>> x 5
Отредактировано terabayt (Дек. 20, 2014 22:54:52)
Офлайн
Внутри eval не работает ‘=’. Что это значит?
Офлайн
в eval вычисляеся выражение, а в exec выполняется код
alien308и не только ‘=’
Внутри eval не работает ‘=’. Что это значит?
>>> eval('print(1)') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1 print(1) ^ SyntaxError: invalid syntax >>> exec('print(1)') 1
Офлайн
Спасибо!
Офлайн