小编Raz*_*zer的帖子

在C#中实现方法装饰器

python可以实现function decorators扩展功能和方法的行为.

特别是我正在将设备lib迁移pythonC#.与设备的通信可能会产生错误,应该使用自定义异常重新启动.

python我会写这样的:

@device_error_wrapper("Device A", "Error while setting output voltage.")   
def set_voltage(self, voltage):
    """
    Safely set the output voltage of device.
    """
    self.__handle.write(":source:voltage:level {0}".format(voltage))
Run Code Online (Sandbox Code Playgroud)

此方法调用将扩展为

try:
    self.__handle.write(":source:voltage:level {0}".format(voltage))
except Error:
    raise DeviceError("Error while setting output voltage.", "DeviceA")
Run Code Online (Sandbox Code Playgroud)

使用此模式,您可以轻松地包装和扩展方法,而无需try-except在每个方法中编写每个子句.

是否可以使用C#?实现类似的模式?

如果需要实现decorator(device_error_wrapper),请告诉我们.

c# python design-patterns decorator

9
推荐指数
2
解决办法
4366
查看次数

检查是否有任何bootstrap模式打开

如果有任何 bootstrap模式当前打开,如何检查?

背后的原因:如果一个模态是打开的,我想停用某个keyhandler.

javascript twitter-bootstrap twitter-bootstrap-3

9
推荐指数
2
解决办法
7619
查看次数

在Matlab中绘制3D点

我想Matlab根据值绘制不同颜色的3D点.我有以下代码,但这不起作用,因为plot3d需要一个向量.

x = vdhf_data.data(:,1);
y = vdhf_data.data(:,2);
z = vdhf_data.data(:,3);
data = vdhf_data.data(:,4);

grid on
hold all

for k=1:length(x)
    if data(k) < 6  
        plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'r', 'MarkerFaceColor', 'r')
    else
        plot3d(x(k), y(k), z(k), 'ws--', 'MarkerEdgeColor', 'g', 'MarkerFaceColor', 'g')
    end
end
Run Code Online (Sandbox Code Playgroud)

如何在Matlab中做到这一点?

3d matlab plot

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

创建串联字符串的性能

哪种创建字符串的方式在运行时效率更高 C#

1号:

bool value = true;
int channel = 1;
String s = String.Format(":Channel{0}:Display {1}", channel, value ? "ON" : "OFF");
Run Code Online (Sandbox Code Playgroud)

2号:

bool value = true;
String channel = "1";
string  s = ":Channel" + channel + ":Display " + value ? "ON" : "OFF";
Run Code Online (Sandbox Code Playgroud)

c# string performance

7
推荐指数
2
解决办法
1217
查看次数

git checkout自动合并本地修改

我尝试在shell上执行以下命令

git init

echo "test1" > test1.txt
git add test1.txt
git commit -a -m "test1"

echo "test2" >> test1.txt

git branch test
git checkout test
Run Code Online (Sandbox Code Playgroud)

text.txt 现在包含:

test1
test2
Run Code Online (Sandbox Code Playgroud)

结账后分支test所有本地修改从master合并.

为什么?

我期望因为本地更改而git拒绝结帐test.我希望git要求提交或stash本地更改.

编辑:我使用bash脚本来执行此命令.我得到以下输出:

r@r:/tmp/test$ ./createrepo 
Initialized empty Git repository in /tmp/test/.git/
[master (root-commit) 0407f5b] test1
 1 file changed, 1 insertion(+)
 create mode 100644 test1.txt
M       test1.txt
Switched to branch 'test'
Run Code Online (Sandbox Code Playgroud)

git merge git-checkout

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

使用代理后面的git

我在代理人后面.为了git工作,我将不得不添加

proxy = http://username:password@proxy.at.your.org:8080
Run Code Online (Sandbox Code Playgroud)

.gitconfig.

既然username并且password是我的系统凭证,这个解决方案很糟糕,因为我必须将它们存储为cleartext.

我正在使用Google Chrome我不需要设置任何代理设置的地方,因为它使用系统代理设置.

怎么做git

windows git configuration proxy

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

在标准python线程中发出信号

我有一个线程应用程序,我有一个网络线程.UI部分传递callback给该线程.线程是一个普通的 python线程 - 它是NO QThread.

是否可以在此线程中发出PyQT Slot?

python pyqt signals-slots

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

GitLab.com 下载计数器

我在 GitLab.com 上传了一个 GIT 存储库,似乎一切正常。

但是我找不到下载统计信息。对我来说,这是一个必不可少的功能,没有它,GitLab.com 托管将是不够的。

我错过了什么?谁能告诉我如何获得 GitLab.com 上下载次数的计数器?

提前致谢。

git statistics repository gitlab

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

使用信号在类之间进行通信

我想signals用于我的视图和我的应用程序控制器之间的通信。我有以下方法,但由于我是初学者,PyQt我不知道这是否正确。谁能告诉我我是在正确的道路上还是有更好的解决方案?

编辑:我已将示例更改为完整的示例。

import sys
from PyQt4 import QtGui, QtCore

class View(QtGui.QMainWindow):

    sigFooChanged = QtCore.pyqtSignal()  
    sigBarChanged = QtCore.pyqtSignal()  

    def __init__(self):
        QtGui.QMainWindow.__init__(self)

        central_widget = QtGui.QWidget()
        central_layout = QtGui.QHBoxLayout()

        self.__cbFoo = QtGui.QComboBox()
        self.__cbBar = QtGui.QComboBox()
        self.__cbFoo.currentIndexChanged[str].connect(lambda x: self.sigFooChanged.emit())
        self.__cbBar.currentIndexChanged[str].connect(lambda x: self.sigBarChanged.emit())

        central_layout.addWidget(QtGui.QLabel("Foo:"))
        central_layout.addWidget(self.__cbFoo)
        central_layout.addWidget(QtGui.QLabel("Bar:"))
        central_layout.addWidget(self.__cbBar)

        central_widget.setLayout(central_layout)
        self.setCentralWidget(central_widget)

    def setFooModel(self, model):
        self.__cbFoo.setModel(model)

    def setBarModel(self, model):
        self.__cbBar.setModel(model)

class Controller:
    def __init__(self, view):
        self.__view = view
        # Connect all signals from view with according handlers
        self.__view.sigFooChanged.connect(self.handleFooChanged)
        self.__view.sigBarChanged.connect(self.handleBarChanged)

        self.__fooModel = QtGui.QStringListModel(["Foo1", "Foo2", "Foo3"]) …
Run Code Online (Sandbox Code Playgroud)

python model-view-controller signals pyqt

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

使用PyCharm进行多线程调试

我试图调试多线程python应用程序.我在第二个线程中设置了断点并开始使用调试PyCharm 2.7.3.

然而,我无法在断点处停下来.如何使用PyCharm存档多线程调试?

debugging multithreading pycharm

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