小编Cha*_*ame的帖子

wxPython中的OnInit和__init__

我正在学习wxPython.在其中一个示例中,代码如下:

import wx

class App(wx.App):    
    def OnInit(self):
        frame = wx.Frame(parent=None, title = 'bare')
        frame.Show()
        return True


app=App()
app.MainLoop()
Run Code Online (Sandbox Code Playgroud)

我注意到该类App没有构造函数,只有函数OnInit.据我所知,Python类是用__init__函数构造的.

那么,OnInit函数是针对特定的类吗?或者它是另一种类型的构造函数?

请原谅我的无知,因为我是新手.谢谢.

python constructor wxpython

6
推荐指数
1
解决办法
3464
查看次数

为什么字典中的项目顺序在Python中发生了变化?

我正在尝试从一些教程中学习Python.这是我遇到的一个简单的例子,让我感到困惑.

>>> d={"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}

>>> d
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}

>>> d.keys()
['pwd', 'database', 'uid', 'server']

>>> d.values()
['secret', 'master', 'sa', 'mpilgrim']
Run Code Online (Sandbox Code Playgroud)

正如您在我定义字典的第一行中所看到的,该项是字典"pwd":"secret"中的最后一个元素.但是,当我输出字典时,它成为第一个元素.字典的其余部分已经重新排序.

我可以知道为什么会这样吗?

如果我使用dict.keys()从字典中提取密钥并按照我认为的顺序迭代它,那会导致不匹配问题吗?

python dictionary

5
推荐指数
2
解决办法
1万
查看次数

sql server 使用 pyodbc 返回值

我正在尝试pyodbc使用以下代码运行一些存储过程并获取单个返回值:

conn = pyodbc.connect("driver={SQL Server};server=MyServer;database=MyDB;trusted_connection=true") 

cursor = conn.cursor()

SQL_command = """
                DECLARE @ret INT

                EXEC @ret = [dbo].proc_mySP             
                  @group= 0
                , @description =?

                SELECT @ret
              """

cursor.execute(SQL_command, description)
retValue = cursor.fetchall()
Run Code Online (Sandbox Code Playgroud)

而存储过程的框架如下:

-- SOME CODE
-- ......
-- EXEC another_sp
-- DECLARE @RET INT
-- SELECT @RET as retValue
-- ......
Run Code Online (Sandbox Code Playgroud)

上面的 sql 在 sql server 中运行良好,但是,当它被上面的 Python 代码调用时,它给出了错误消息:

pyodbc.ProgrammingError: ('24000', '[24000] [Microsoft][ODBC SQL Server Driver]无效的游标状态 (0) (SQLNumResultCols)')

我可以知道我的代码有什么问题吗?

非常感谢。

python sql return-value pyodbc

5
推荐指数
1
解决办法
8747
查看次数

如何使字典列表中的值唯一?

我在Python中有一个字典列表,如下所示:

d = [{feature_a:1, feature_b:'Jul', feature_c:100}, {feature_a:2, feature_b:'Jul', feature_c:150}, {feature_a:1, feature_b:'Mar', feature_c:110}, ...]
Run Code Online (Sandbox Code Playgroud)

我想实现的是保持feature_a,_b_c独特的.

例如,如果我们有3项具有相同feature_a_b,但有3个不同的值feature_c 100,100,150,则操作之后,它应该是100150.

我怎样才能做到这一点?

================================================== ==============更新:

好的,感谢Anand的出色答案,它完美无缺.但是,我还有一个问题.

假设我们有一个新的feature_d,字典看起来像:

d = [{feature_a:1, feature_b:'Jul', feature_c:100, feature_d:'A'}, {feature_a:2, feature_b:'Jul', feature_c:150, feature_d: 'B'}, {feature_a:1, feature_b:'Mar', feature_c:110, feature_d:'F'}, ...]
Run Code Online (Sandbox Code Playgroud)

我只想重复数据删除feature_a,_b并且_c,但是离开feature_d了.我怎样才能做到这一点?

非常感谢.

python unique

5
推荐指数
1
解决办法
2653
查看次数

如何在PyCharm 5中逐步调试Python包?

我在PyCharm中有一个Python包,它们的执行方式如下:

python -m mypackage
Run Code Online (Sandbox Code Playgroud)

但是,随着代码越来越大,我需要跟踪数据更改,因此我需要一步一步地完成.我试图将其作为脚本进行调试,但是PyCharm通过弹出值错误阻止了我:

ValueError:在非包中尝试相对导入

我必须保留这些相对导入,因为它们也被编写为Python包.

任何人都可以教我如何在PyCharm5中做到这一点?

非常感谢.

python debugging pycharm

5
推荐指数
0
解决办法
116
查看次数

如何使用 Python Pandas 将 CSV 文件写入 XLSX?

我有几个 .csv 文件,我想将它们作为电子表格写入一个 .xlsx 文件。

我已使用以下代码将这些 .csv 文件加载到 Pandas.DataFrame 中:

df1 = pandas.read_csv('my_file1.csv')
df2 = pandas.read_csv('my_file2.csv')
......
df5 = pandas.read_csv('my_file5.csv')
Run Code Online (Sandbox Code Playgroud)

但是我在 Pandas 中找不到任何可以将这些 DataFrame 作为单独的电子表格写入一个 .xlsx 文件的函数。

谁能帮我这个?

python csv excel xlsx pandas

5
推荐指数
1
解决办法
1万
查看次数

如何在C++中以高精度生成随机双数?

我正在尝试以高精度生成一系列双随机数。例如,0.856365621(十进制后有 9 位)。

我从互联网上找到了一些方法,但是,它们确实生成了双随机数,但是精度没有我要求的那么好(小数点后只有 6 位)。

因此,我可以知道如何实现我的目标吗?

c++ random precision

4
推荐指数
1
解决办法
3107
查看次数

使用pyodbc创建数据库

我试图创建一个数据库使用pyodbc,但是,我发现它似乎是矛盾的,因为pyodbc需要首先连接到数据库,并且新的数据库是在链接的数据库中创建的.如果我错了,请纠正我.

在我的例子中,我使用以下代码来创建一个新的数据库

conn = pyodbc.connect("driver={SQL Server};server= serverName; database=databaseName; trusted_connection=true") 

cursor = conn.cursor()

sqlcommand = """
                   CREATE DATABASE ['+ @IndexDBName +'] ON  PRIMARY 
                    ( NAME = N'''+ @IndexDBName+''', FILENAME = N''' + @mdfFileName + ''' , SIZE = 4000KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
                     LOG ON 
                    ( NAME = N'''+ @IndexDBName+'_log'', FILENAME = N''' + @ldfFileName + ''' , SIZE = 1024KB , MAXSIZE = 100GB , FILEGROWTH = 10%)'
             """

cursor.execute(sqlcommand)

cursor.commit()

conn.commit()
Run Code Online (Sandbox Code Playgroud)

上面的代码没有错误,但是没有创建数据库.

那么如何使用pyodbc创建数据库呢? …

python sql database pyodbc

4
推荐指数
1
解决办法
3685
查看次数

无法在事务中执行备份或还原操作

我使用PyODBC来备份我的数据库,使用以下代码:

SQL_command = """
                BACKUP DATABASE [MyDatabase]
                TO DISK = N'D:\MSSQL\BACKUP\MyDatabase_20141212.bak' WITH
                      NOFORMAT
                ,     NOINIT
                ,     NAME = N'MyDatabase_20141212'
                ,     SKIP
                ,     REWIND
                ,     NOUNLOAD
                ,     STATS = 10
              """

conn.cursor.execute(SQL_command)

conn.cursor.commit()
Run Code Online (Sandbox Code Playgroud)

上面的代码给我一个错误信息:

pyodbc.ProgrammingError:

('42000','[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server]无法在事务中执行备份或还原操作.(3021)(SQLExecDirectW);

[42000] [Microsoft] [ODBC SQL Server驱动程序] [SQL Server] BACKUP DATABASE异常终止.(3013)')

我试图在SQL Server中运行SQL代码,它工作正常.

我可以知道我的代码有什么问题吗?

非常感谢.

python sql pyodbc

4
推荐指数
1
解决办法
3054
查看次数

如何用Python打开Excel文件来显示其内容?

我正在尝试用Python打开一个excel文件来显示满足其中的数据,就像我们用鼠标双击它一样.

我已经搜索了一段时间,但似乎所有页面都在谈论如何使用代码读取和编写excel文件,而不是向用户显示内容.

那么,我的问题有什么解决方案吗?

非常感谢.

python excel

3
推荐指数
1
解决办法
1万
查看次数