小编Yul*_*a V的帖子

在 Excel 中加载 XLL:Tools->AddIn 和 File->Open 之间有什么区别吗?

我有一个 XLL,想在 Excel 中加载它。

使用 Tools->AddIn 或 File->Open 加载之间有什么区别吗?

  • 如果我使用 File->Open,则无法卸载它;
  • 如果我重新启动 Excel,它不会自动加载。

谢谢!

excel add-in load xll

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

在Python中连接字符串中的字符列表的优雅方法

可能重复:
如何以最佳方式将字符列表连接到字符串?

我有一个字符列表:

['h', 'e', 'l', 'l', 'o']
Run Code Online (Sandbox Code Playgroud)

有没有办法在不需要类似'for'循环的字符串'hello'中连接这种列表的元素?谢谢.

python string list concatenation char

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

如何在Python中绑定常量参数?

我有一个类似的课程

class C:
    def __init__(self, a):
        self.a = a
    def noParam(self):
        return self.a
    def withParam(self, b)
        return self.a + b
instC = C(5.)
Run Code Online (Sandbox Code Playgroud)

我需要传递一个类的特定实例的方法作为参数.传instC.noParam工作正常,但我怎么通过instC.withParamb总是等于说239?谢谢.

python

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

如何检测文本框字符串中的行尾字符(VB6)

我有VisualBasic6的问题.

我有3个文本框和2个命令按钮.

我想在检查第一个文本框时检测VbCrLf,逐字母然后在第二个文本框中写入另一个文本框:101和另一个函数检查第二个文本框,如果找到101则在第三个文本框中创建一个新行(vbcrlf).

在命令中:

For i = 1 to len(text1.text)
   if Mid(txtD.Text, i, 1) = vbcrlf then
      text2.text = 101
   endif
next
Run Code Online (Sandbox Code Playgroud)

在Command2中:

if text2.text = 101 then
  text3.text = text3.text & vbcrlf
endif
Run Code Online (Sandbox Code Playgroud)

但是当我检查Vbcrlf时,似乎字符不是换行符,而text2.text没有填充 101

我也试过VbNewLine,但也有同样的问题!

谢谢你的朋友们!

string vb6 character letter line

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

是否可以使用参数自动生成函数?

我有一个方法可以根据形状的名称和一些参数绘制一条线或任何形状的补丁,它工作正常:

def draw_a_shape(ax, is_patch_not_line, shapename, **kwargs):
  ...
Run Code Online (Sandbox Code Playgroud)

现在我需要有 30 多个函数,比如draw_a_square_patchdraw_an_ellipse_outline等等。我可以用一种简单的方式实现它们,如下所示,但这有点痛苦:

def draw_a_square_patch(ax, **kwargs):
  draw_a_shape(ax=ax, is_patch_not_line=True, shapename='a_square', **kwargs)
def draw_a_square_outline(ax, **kwargs):
  draw_a_shape(ax=ax, is_patch_not_line=False, shapename='a_square', **kwargs)
def draw_an_ellipse_patch(ax, **kwargs):
  draw_a_shape(ax=ax, is_patch_not_line=True, shapename='an_ellipse', **kwargs)
def draw_an_ellipse_outline(ax, **kwargs):
  draw_a_shape(ax=ax, is_patch_not_line=False, shapename='an_ellipse', **kwargs)
.........
Run Code Online (Sandbox Code Playgroud)

我想知道是否有办法使用循环来做到这一点,也许像setattr?我在下面添加了一个无效的代码,只是为了解释我的意思:

for shapename in ['a_circle', 'a_square', ...]:
  for is_patch_not_line in [False, True]:
    new_func_name = "draw_" + shapename + "_"
    if is_patch_not_line:
      new_func_name += "patch"
    else:
      new_func_name += "outline"
    global.setattr(new_func_name, "ax, **kwargs", ...) 
Run Code Online (Sandbox Code Playgroud)

python functools

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

Python:如何检查参数的类型是否会通过值或引用传递?

似乎原子类型(int,string,...)是通过值传递的,而所有其他的(对象,指向函数的指针,指向方法的指针......)都是通过引用传递的.

检查变量是按值传递还是按引用传递的最佳方法是什么?

isinstance(input_, float) or isinstance(input_, basestring) or <...>
Run Code Online (Sandbox Code Playgroud)

似乎非常不优雅.

我需要它的原因如下:我有一个包装wx.Button的类,如果args/kwargs是按值传递的类型,则不会考虑更新其他对象中的值.所以一些检查将是有益的

class PalpyButton(wx.Button):        
    def __init__(self, parent, btnLabel, handler, successMsg = None, args = (), kwargs = {}):
        super(PalpyButton, self).__init__(parent, -1, btnLabel)
        self.handler = handler
        self.successMsg = successMsg
        parent.Bind(wx.EVT_BUTTON, lambda event: self.onClick(event, *args, **kwargs), self)
    def onClick(self, event, *args, **kwargs):
        try:
            self.handler(*args, **kwargs)
            if self.successMsg != None:
                if hasattr(self.successMsg, '__call__'):
                    showInfoMessageBox(self.successMsg())
                else:
                    showInfoMessageBox(self.successMsg)
        except BaseException, detail:
            showErrorMessageBox(detail)
Run Code Online (Sandbox Code Playgroud)

python types pass-by-reference pass-by-value

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