小编kol*_*pto的帖子

带有默认值和关键字参数的参数之间有什么区别?

在Python中,具有默认值的参数之间的区别是什么:

def f(a,b,c=1,d=2): pass
Run Code Online (Sandbox Code Playgroud)

和关键字参数:

def f(a=1,b=2,c=3): pass
Run Code Online (Sandbox Code Playgroud)

?我想这没什么区别,但是教程有两个部分:

4.7.1.默认参数值

4.7.2.关键字参数

这听起来有些不同.如果是这样,为什么我不能在2.6中使用这种语法:

def pyobj_path(*objs, as_list=False): pass
Run Code Online (Sandbox Code Playgroud)

python syntax

6
推荐指数
3
解决办法
2208
查看次数

将变量从PHP导出到shell

我正在尝试设置一个应该可以从PHP外部访问的变量.理想情况下,这应该是一个局部变量,但也欢迎环境变量.

首先,我尝试过putenv(),但这没有结果:

$ php -r"putenv('PHP_TEST = string');" ; echo $ PHP_TEST

$

当我getenv()从同一个脚本调用时- 它会产生正确的'字符串'值.安全模式已关闭,但手册中说"PHP_"前缀对于safe = on至关重要所以我使用它以防万一:)

然后我尝试system()shell_exec():

$ php -r"shell_exec('PHP_TEST = string');" ; echo $ PHP_TEST

$ php -r"shell_exec('export PHP_TEST = string');" ; echo $ PHP_TEST

$

有解决方法吗?可能是什么原因?我正在使用Ubuntu Linux 9.10"Karmic",但FreeBSD服务器给出了相同的结果.

php shell export environment-variables

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

\ colorbox的三重包装?\ NewEnviron?\newenvironment失败

我试图将一个用\NewEnviron(包'environ')创建的环境包装成一个旧商品\newenvironment:

\NewEnviron{test}{\colorbox[gray]{0.7}{\BODY}}
\newenvironment{wrapper}{\begin{test}}{\end{test}}

\begin{wrapper}
debug me
\end{wrapper}
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个奇怪的错误:

LaTeX错误:输入行15上的\ begin {test}以\ end {wrapper}结束.LaTeX错误:\ begin {wrapper}在输入行15上以\ end {document}结束.

如果我更换\NewEnviron{test}{aaa(\BODY)bbb}\newenvironment{test}{aaa(}{)bbb}-按预期工作的一切!似乎\NewEnviron由于某种原因未能找到它的结局.

我试图用'floatfig'包装成一个魔法,\colorbox所以我需要一种方法来转换\colorbox为环境并将其包装到另一个环境中.我可以定义一个新命令,但这不是一个好主意.

latex wrapper latex-environment

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

如何使用 Pipenv 定义入口点?

setup.py用于定义如下入口点:

entry_points={
    'console_scripts': [
        'cursive = cursive.tools.cmd:cursive_command',
    ],
},
Run Code Online (Sandbox Code Playgroud)

如何为pipenv做这件事?似乎没有规范的方法来定义 Pipenv 的入口点?

我发现setuptools建议应创建一个setup.cfg文件,如下所示:

[options.entry_points]
console_scripts =
    cursive = cursive.tools.cmd:cursive_command
Run Code Online (Sandbox Code Playgroud)

但它永远不会被“安装”:也就是说,没有cursive创建可执行文件。

那么,如何使用 Pipenv 创建入口点呢?

python entry-point pipenv

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

使用SqlAlchemy和PostgreSQL更新.. LIMIT 1

使用SqlAlchemy,是否可以构建一个只更新第一个匹配行的查询?

就我而言,我需要更新最新的日志条目:

class Log(Base):
    __tablename__ = 'logs'
    id = Column(Integer, primary_key=True)
    #...
    analyzed = Column(Boolean)

session.query(Log)  \
    .order_by(Log.id.desc())  \
    .limit(1)  \
    .update({ 'analyzed': True })
Run Code Online (Sandbox Code Playgroud)

结果如下:

InvalidRequestError:调用limit()时无法调用Query.update()

这是有道理的,因为它UPDATE ... LIMIT 1是一个仅限MySQL的功能(这里给出了解决方案)

但是我如何对PostgreSQL做同样的事情呢?可能,使用子查询方法

python postgresql sqlalchemy sql-update sql-limit

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

SQLAlchemy 和 pandas:如何查询具有不同标签的列?

当使用 Pandasread_sql使用 SQLAlchemy 查询我的数据库时,我收到以下警告:

SAWarning:表上的列 'id' 被具有相同键的 Column('id', Integer(), table=, primary_key=True, nullable=False) 替换。考虑 use_labels 用于 select() 语句。(key, getattr(existing, 'table', None), value))

对,所以我的每一个LeagueSeasonRoundMatch,和Team表有一个名为列id。当然。

一开始我忽略了这一点,但是当我想id使用pd.drop(). 甚至pd.rename通过索引 (!) 引用该列,重命名所有具有相同名称的列:

pandoc.rename(
    columns={pandoc.columns[1]: 'match_id'}, 
    inplace=True)
# This replaced all columns with the label `id` to `match_id`
Run Code Online (Sandbox Code Playgroud)

SQLAlchemy 建议我将考虑 use_labels 用于 select() 语句,虽然我设法处理常规查询,但我无法真正弄清楚.label('new_column_name')在以下查询中的位置:

pandoc = pd.read_sql(
Match.query.options(
        joinedload(Match.home_team),
        joinedload(Match.away_team)).statement, 
    db.session.bind,
    parse_dates=['date_time'])
Run Code Online (Sandbox Code Playgroud)

一种选择是将id表中的所有列更改为 …

python sqlalchemy pandas

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

如何使用 SQLAlchemy TypeDecorator 向列添加方法

我正在尝试向 ORM 类成员添加自定义方法,以使其处理与该成员相关的事物。尝试遵循文档

class EnhDateTime(types.TypeDecorator):
    impl = types.DateTime
    def foo(self):
        return "foo"

class MyDoc(Base):
     id = Column(Integer, primary_key=True,  autoincrement=False) 
     created = Column(EnhDateTime)

doc = session.query(MyDoc).filter_by(id=123).one()
Run Code Online (Sandbox Code Playgroud)

不幸的是,什么也没发生,成员仍然是 DateTime 类型:

type(doc.created)
Run Code Online (Sandbox Code Playgroud)

日期时间.日期时间

doc.created.foo()
Run Code Online (Sandbox Code Playgroud)

属性错误

python sqlalchemy

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

hashables的瘦代理类

我需要一些薄的包装器对象来标记字典键,例如:

d = {
  Required('name'): str,
  Optional('age'): int,
}
Run Code Online (Sandbox Code Playgroud)

这些包装器应该像包装对象一样(比较,散列等):

marked = Required('name')
marked == 'name'  #-> True
d[marked] = 'hello'
d['name']  #-> 'hello'
Run Code Online (Sandbox Code Playgroud)

使用一个额外的属性:它应该记住添加的类:

isinstance(marked, Required)  #-> True
Run Code Online (Sandbox Code Playgroud)

添加的类应该有自定义方法.

这实际上就像是可混合物体上的混合物.


我不喜欢那些模仿所有特殊属性并考虑以下想法的重量级代理模式:

class Wrapper(object):
    def __new__(cls, value):
        value_type = type(value)
        Type = type(
            value_type.__name__,  # same name
            (cls, value_type),  # Wrapper + bases
            {})
        Type.__new__ = value_type.__new__  # prevent recursion
        return Type(value)

    # Override method
    def __repr__(self):
        return 'Wrapper({})'.format(self)
Run Code Online (Sandbox Code Playgroud)

好主意?

python proxy-classes

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

如何在 VS Code for Go 中生成接口实现?

在 VSCode 中,如何生成接口的实现?

比如说,我有这个界面:

type ServerInterface interface {
    // Set value for a device
    SetSomethingForDeviceById(ctx echo.Context, id int64) error
}
Run Code Online (Sandbox Code Playgroud)

如何生成实现它的方法?

go visual-studio-code

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

Python中的"A类:"和"A类(对象):"有什么区别?

有什么区别

class A:
    pass
Run Code Online (Sandbox Code Playgroud)

class B(object):
    pass
Run Code Online (Sandbox Code Playgroud)

?出于某种原因,在方法中我不能使用,super(A, self)super(B, self)效果很好.我想Py3k中没有这样的特性:)

python inheritance class python-3.x

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

为什么`count(new stdClass);`返回1?

stdClass在PHP应该是一个空的对象,但它count()1出于某种原因.为什么?

PHP> (array)(new stdClass);
// array(
// 
// )
PHP> empty(new stdClass);
// false
PHP> count(new stdClass);
// 1
Run Code Online (Sandbox Code Playgroud)

php count

0
推荐指数
1
解决办法
256
查看次数