标签: python

从不同的文件夹导入文件

我有以下文件夹结构.

application/app/folder/file.py

我想从另一个驻留的Python文件中的file.py中导入一些函数

application/app2/some_folder/some_file.py

我试过了

from application.app.folder.file import func_name

和其他一些尝试,但到目前为止我无法正确导入.我怎样才能做到这一点?

python python-import importerror

1186
推荐指数
28
解决办法
121万
查看次数

在现代Python中声明自定义异常的正确方法?

在现代Python中声明自定义异常类的正确方法是什么?我的主要目标是遵循标准的其他异常类,因此(例如)我在异常中包含的任何额外字符串都会被捕获异常的任何工具打印出来.

通过"现代Python",我指的是将在Python 2.5中运行的东西,但对于Python 2.6和Python 3*的处理方式来说是"正确的".而"自定义"我指的是一个Exception对象,它可以包含有关错误原因的额外数据:一个字符串,也许还有一些与异常相关的任意对象.

我被Python 2.6.2中的以下弃用警告绊倒了:

>>> class MyError(Exception):
...     def __init__(self, message):
...         self.message = message
... 
>>> MyError("foo")
_sandbox.py:3: DeprecationWarning: BaseException.message has been deprecated as of Python 2.6
Run Code Online (Sandbox Code Playgroud)

看起来很疯狂,BaseException对于名为的属性具有特殊含义message.我从PEP-352收集到该属性确实在2.5中有特殊含义他们试图弃用,所以我猜这个名字(而且仅此一个)现在被禁止了?啊.

我也模糊地意识到它Exception有一些神奇的参数args,但我从来不知道如何使用它.我也不确定这是向前发展的正确方法; 我在网上发现的很多讨论都表明他们试图在Python 3中废除args.

更新:两个答案建议覆盖__init__,和__str__/ __unicode__/ __repr__.这似乎很多打字,是否有必要?

python exception custom-exceptions

1176
推荐指数
11
解决办法
60万
查看次数

在Python中检查类型的规范方法是什么?

检查给定对象是否属于给定类型的最佳方法是什么?如何检查对象是否继承给定类型?

假设我有一个对象o.我如何检查它是否是一个str

python types

1171
推荐指数
12
解决办法
80万
查看次数

1167
推荐指数
19
解决办法
85万
查看次数

type()和isinstance()之间有什么区别?

这两个代码片段之间有什么区别?使用type():

import types

if type(a) is types.DictType:
    do_something()
if type(b) in types.StringTypes:
    do_something_else()
Run Code Online (Sandbox Code Playgroud)

使用isinstance():

if isinstance(a, dict):
    do_something()
if isinstance(b, str) or isinstance(b, unicode):
    do_something_else()
Run Code Online (Sandbox Code Playgroud)

python oop inheritance types

1163
推荐指数
6
解决办法
69万
查看次数

Pythonic方式创建一个长多行字符串

我有一个很长的查询.我想在Python中将它分成几行.在JavaScript中实现它的一种方法是使用几个句子并将它们与+运算符连接(我知道,也许这不是最有效的方法,但我并不关心这个阶段的性能,只是代码可读性) .例:

var long_string = 'some text not important. just garbage to' +
                  'illustrate my example';
Run Code Online (Sandbox Code Playgroud)

我尝试在Python中做类似的事情,但它不起作用,所以我习惯\拆分长字符串.但是,我不确定这是否是唯一/最好/最好的方式.看起来很尴尬.实际代码:

query = 'SELECT action.descr as "action", '\
    'role.id as role_id,'\
    'role.descr as role'\
    'FROM '\
    'public.role_action_def,'\
    'public.role,'\
    'public.record_def, '\
    'public.action'\
    'WHERE role.id = role_action_def.role_id AND'\
    'record_def.id = role_action_def.def_id AND'\
    'action.id = role_action_def.action_id AND'\
    'role_action_def.account_id = ' + account_id + ' AND'\
    'record_def.account_id=' + account_id + ' AND'\
    'def_id=' + def_id
Run Code Online (Sandbox Code Playgroud)

python string multiline multilinestring

1160
推荐指数
21
解决办法
102万
查看次数

我怎样才能用Python代表'Enum'?

我主要是一名C#开发人员,但我目前正在使用Python开发一个项目.

我怎样才能在Python中表示Enum的等价物?

python enums python-3.x

1146
推荐指数
28
解决办法
80万
查看次数

按列名从pandas DataFrame中删除列

删除DataFrame中的列时,我使用:

del df['column_name']
Run Code Online (Sandbox Code Playgroud)

这很有效.为什么我不能使用以下?

del df.column_name
Run Code Online (Sandbox Code Playgroud)

由于您可以访问列/系列df.column_name,我希望这可以工作.

python dataframe pandas

1136
推荐指数
15
解决办法
150万
查看次数

1124
推荐指数
7
解决办法
46万
查看次数

如何使用Python连接MySQL数据库?

如何使用python程序连接到MySQL数据库?

python mysql

1117
推荐指数
15
解决办法
118万
查看次数