标签: wrapper

帮助用 Python 封装命令行工具

我真的遇到了一个问题,我希望有人可以帮助我。我正在尝试在 Python3.1 中为名为 的命令行程序创建一个包装器spooky。我可以在命令行上成功运行该程序,如下所示:

$ spooky -a 4 -b .97
Run Code Online (Sandbox Code Playgroud)

我对 spooky 的第一次 Python 包装尝试如下所示:

import subprocess

start = "4"
end = ".97"

spooky_path = '/Users/path/to/spooky'
cmd = [spooky_path, '-a', start, '-b', end]
process = subprocess.Popen(cmd, stdout=subprocess.PIPE)
process.wait()
print('Done')
Run Code Online (Sandbox Code Playgroud)

上面的代码打印Done,但不执行程序spooky

接下来我尝试在命令行上执行该程序,如下所示:

$ /Users/path/to/spooky -a 4 -b .97
Run Code Online (Sandbox Code Playgroud)

上面的代码也失败了,并且没有提供任何有用的错误。

我的问题是:如何通过发送spooky -a 4 -b .97到命令行让Python运行这个程序?我非常感谢您能提供的任何帮助。提前致谢。

python subprocess wrapper

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

使用 Vue.js DataTable 包装 tr

我有一张桌子,里面有 2 个<tr>。我需要把这个包2 <tr>,做v-for的包装。但是v-for<tbody>打破数据表。

实际代码:

<table class="table table-striped" id="data_table">
    <thead>
        <tr>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </thead>

    <tbody v-for="item in items">
        <tr>
            <td>{{ item.A }}</td>
            <td>{{ item.A }}</td>
            <td>{{ item.A }}</td>
            <td>{{ item.A }}</td>
            <td>{{ item.A }}</td>
            <td>{{ item.A }}</td>
        </tr>

        <tr>
            <td>{{ item.T }}</td>
            <td>{{ item.T }}</td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

试过:

<table class="table table-striped" id="data_table">
    <thead>
        <tr>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
            <th></th>
        </tr>
    </thead>

    <tbody>
    <div v-for="item …
Run Code Online (Sandbox Code Playgroud)

datatable jquery wrapper vue.js

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

从抽象方法继承包装器

我想系统地包装一些基类的重写方法。

ABC用于基类。我试图包装@abstractmethod,将注释放在之前或之后,但它不起作用。据我了解,整个包装方法被覆盖。

from functools import wraps
from abc import ABC, abstractmethod

def print_before(func):
    @wraps(func)
    def out(*args, **kwargs):
        print('Hello')
        return func(*args, **kwargs)

    return out

class Base(ABC):
    @print_before
    @abstractmethod
    def test(self):
        pass

class Extend(Base):
    def test(self):
        print('World')
Run Code Online (Sandbox Code Playgroud)

这是我们测试时发生的情况:

Extend().test()
Run Code Online (Sandbox Code Playgroud)

结果:

World
Run Code Online (Sandbox Code Playgroud)

期望:

Hello
World
Run Code Online (Sandbox Code Playgroud)

我想我没有使用正确的方法来获得这种行为。在重写方法之前和之后运行一些代码的好的 Pythonic 方式是什么?

python abstract-class abc wrapper python-3.x

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

cmdlet 的包装函数 - 传递剩余参数

我正在编写一个使用 ValueFromRemainingArguments 包装 cmdlet 的函数(如此处所述

下面的简单代码演示了这个问题:

  • 作品
function Test-WrapperArgs {
    Set-Location @args
}
Run Code Online (Sandbox Code Playgroud)
Test-WrapperArgs -Path C:\ 
Run Code Online (Sandbox Code Playgroud)
  • 不起作用
Test-WrapperArgs -Path C:\ 
Run Code Online (Sandbox Code Playgroud)
Test-WrapperUnbound -Path C:\
Set-Location: F:\cygwin\home\thorsten\.config\powershell\test.ps1:69
Line |
  69 |      Set-Location @UnboundArgs
     |      ~~~~~~~~~~~~~~~~~~~~~~~~~
     | A positional parameter cannot be found that accepts argument 'C:\'.
Run Code Online (Sandbox Code Playgroud)

我尝试通过 PowerShell 社区扩展来解决该问题,GetTypeEchoArgs没有成功。目前我几乎正在考虑一个错误(可能与这张票有关??)。

parameters powershell wrapper

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

Java中的原语和包装类之间的真正区别是什么

我理解这样的东西:

  1. 包装类创建一个对象,原始类不创建对象
  2. 包装类与集合一起使用来表示类型
  3. 包装器有方法,可以保存内存地址/空值,原语保存默认值
  4. 与包装类相比,原语速度更快,因为没有方法或对象的开销
  5. 自动装箱和拆箱的工作原理
  6. 包装类包装原始类型

但是,无法理解原语和包装类之间的真正区别。为什么需要创建两种不同的方式来保存数据?为什么我们不重用已经可用的东西?例如,如果包装类是在原语之前引入的,那么为什么我们不使用包装类而不是为类似的目的完全开发一种不同的方式,反之亦然。

java int primitive integer wrapper

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

我的类的实例不希望作为字典键正确地与字符串互换

我创建了一种字符串包装类,并希望将其实例用作与常用字符串互换的字典键.我推翻GetHashCode,并Equals找来似乎奇怪的结果.我已经解决了这个问题.请查看我的代码并解释为什么第二次查找返回null.

void Main()
{
    var foo = new StringWrapper("foo");
    var h = new Hashtable {{ foo, "bar" }};
    Console.WriteLine(h["foo"]);
    Console.WriteLine(h[foo]); // null ??
}

public class StringWrapper
{
    readonly string wrapped;
    public StringWrapper(string s) {
        wrapped = s;
    }
    public override bool Equals(object obj) {
        return wrapped.Equals(obj);
    }
    public override int GetHashCode() {
        return wrapped.GetHashCode();
    }
    public override string ToString() {
        return wrapped;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dictionary equals wrapper gethashcode

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

为什么ArrayList能够删除它?

在Integer Wrapper类中,只要我们比较这样

Integer a=546;
Integer b=546;
System.out.println(a==b);
Run Code Online (Sandbox Code Playgroud)

它返回false,但是当有集合时为什么

ArrayList<Integer> a=new ArrayList<Integer>();
a.add(5);
a.add(546);
Integer g=546;
a.remove(g);
Run Code Online (Sandbox Code Playgroud)

它将它从ArrayList中删除??

java integer arraylist wrapper

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

包装类的C++运算符重载

我正在使用一个名为Pointer的类,我猜这是一个真实指针的包装器.我认为这个类中的这行代码使我能够得到真正的指针:

 operator const T* () const;
Run Code Online (Sandbox Code Playgroud)

这究竟是什么意思?我怎么称呼这个?

假设myPointer是一个Pointer<int16_t>对象.我应该能够int_16*通过使用上面的运算符重载来获取包装此指针的对象,但我不知道如何.

编辑

根据答案,我现在知道我可以这样做:

const int16_t* myRealPointer = myPointer;
Run Code Online (Sandbox Code Playgroud)

现在假设我需要调用一个需要int16_t*参数的函数(所以没有const).如何将此myRealPointer对象传递给该函数?

c++ pointers operator-overloading wrapper

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

如何正确地从uint16_t变量中提取一个特定位

简而言之,我目前正在用C++编写C++包装器,用于提取嵌入式系统寄存器的值.为了监视发生的情况,我需要为某些寄存器读取一个位的值,并为每个寄存器创建一个getter.

基本上,我希望我的方法从存储到uint16_t变量中的一个位返回一个bool.在一个'天真'和没有咖啡因的方法我做了类似的事情:

bool getBusyDevice(int fd) // fd stands for file descriptor, for each instance of the class
{
    uint16_t statusRegVal = 0;
    get_commandReg(fd, &statusRegVal); // C-library function to get the value of status register
    uint16_t shift = 0; // depends on the bit to access - for reusability
    bool Busy = (bool) (statusRegVal >> shift);
    return busy;
}
Run Code Online (Sandbox Code Playgroud)

我对结果不太满意,我想知道是否有"正确"的方法来做到这一点......

非常感谢您的建议!

c++ embedded wrapper bit

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

keras:返回model.summary()与scikit学习包装器

在使用keras时,我了解到使用包装器会对keras和scikit学习api请求产生不利影响。我对同时拥有这两种解决方案感兴趣。

变体1:scikit包装

from keras.wrappers.scikit_learn import KerasClassifier

    def model():
        model = Sequential()
        model.add(Dense(10, input_dim=4, activation='relu'))
        model.add(Dense(3, activation='softmax'))
        model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
        return model

estimator = KerasClassifier(build_fn=model, epochs=100, batch_size=5)
model.fit(X, y)
Run Code Online (Sandbox Code Playgroud)

->这使我可以打印scikit命令,例如precision_score()或category_report()。但是,model.summary()不起作用:

AttributeError:“ KerasClassifier”对象没有属性“ summary”

形式2:无包装

model = Sequential()
model.add(Dense(10, input_dim=4, activation='relu'))
model.add(Dense(3, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X, y, epochs=100, batch_size=5)
Run Code Online (Sandbox Code Playgroud)

->这使我可以打印model.summary()而不是scikit命令。

ValueError:不允许使用y的混合类型,类型为{'multiclass','multilabel-indicator'}

有办法同时使用两者吗?

python summary wrapper scikit-learn keras

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