class python v2.7 中的语法无效
Invalid syntax when inside class python v2.7
当我在我的 class 方法中尝试 运行 cursor.execute("SELECT VERSION()")
时,它给了我一个 SyntaxError。但在 class 之外工作得很好,相同的代码。我是 Python 的新手,尝试过搜索等等,但找不到任何东西。
我得到的错误如下:
cursor.execute("SELECT VERSION()")
^
SyntaxError: invalid syntax
我尝试使用的代码 运行,看起来像:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
import tkMessageBox
import MySQLdb
class Application(Frame):
def __init__(self, master):
Frame.__init__(self,master)
self.grid()
self.create_widgets()
def create_widgets(self):
Label(self, text="Username").grid(row=0)
Label(self, text="Password").grid(row=1)
Label(self, text="Database").grid(row=2)
self.username = Entry(self)
self.username.grid(row=0, column=1)
self.password = Entry(self)
self.password.grid(row=1, column=1)
self.database = Entry(self)
self.database.grid(row=2, column=1)
Button(self, text='Show', command=self.show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
def show_entry_fields(self):
try:
db = MySQLdb.connect("localhost", "root", "", "python" )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
db.close()
except:
tkMessageBox.showinfo("Say Hello", "Dont work.")
root = Tk()
root.title("Simple GUI")
root.resizable(width = FALSE, height = FALSE)
root.geometry("700x500")
# Create the frame and add it to the grid
app = Application(root)
root.mainloop()
您混用了制表符和空格。 cursor.execute
行有 4 个空格而不是它应该有的制表符之一,导致缩进未对齐。在您的编辑器中打开 "show whitespace" 可以更轻松地查看此类内容。
当我在我的 class 方法中尝试 运行 cursor.execute("SELECT VERSION()")
时,它给了我一个 SyntaxError。但在 class 之外工作得很好,相同的代码。我是 Python 的新手,尝试过搜索等等,但找不到任何东西。
我得到的错误如下:
cursor.execute("SELECT VERSION()")
^
SyntaxError: invalid syntax
我尝试使用的代码 运行,看起来像:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
import tkMessageBox
import MySQLdb
class Application(Frame):
def __init__(self, master):
Frame.__init__(self,master)
self.grid()
self.create_widgets()
def create_widgets(self):
Label(self, text="Username").grid(row=0)
Label(self, text="Password").grid(row=1)
Label(self, text="Database").grid(row=2)
self.username = Entry(self)
self.username.grid(row=0, column=1)
self.password = Entry(self)
self.password.grid(row=1, column=1)
self.database = Entry(self)
self.database.grid(row=2, column=1)
Button(self, text='Show', command=self.show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)
def show_entry_fields(self):
try:
db = MySQLdb.connect("localhost", "root", "", "python" )
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
db.close()
except:
tkMessageBox.showinfo("Say Hello", "Dont work.")
root = Tk()
root.title("Simple GUI")
root.resizable(width = FALSE, height = FALSE)
root.geometry("700x500")
# Create the frame and add it to the grid
app = Application(root)
root.mainloop()
您混用了制表符和空格。 cursor.execute
行有 4 个空格而不是它应该有的制表符之一,导致缩进未对齐。在您的编辑器中打开 "show whitespace" 可以更轻松地查看此类内容。