小编Ric*_*sen的帖子

在什么情况下`git pull`是有害的?

我有一位同事声称这git pull是有害的,并且每当有人使用它时都会感到不安.

git pull命令似乎是更新本地存储库的规范方法.使用git pull创建问题?它创造了什么问题?有更好的方法来更新git存储库吗?

git git-pull

404
推荐指数
4
解决办法
9万
查看次数

Python中的继承和init方法

我是python的初学者.我无法理解继承和__init__().

class Num:
    def __init__(self,num):
        self.n1 = num

class Num2(Num):
    def show(self):
        print self.n1

mynumber = Num2(8)
mynumber.show()
Run Code Online (Sandbox Code Playgroud)

结果: 8

还行吧.但我换成Num2

class Num2(Num):
    def __init__(self,num):
        self.n2 = num*2
    def show(self):
        print self.n1,self.n2
Run Code Online (Sandbox Code Playgroud)

结果: Error. Num2 has no attribute "n1".

在这种情况下,如何Num2访问n1

python inheritance init

70
推荐指数
3
解决办法
8万
查看次数

如何用可变长度参数包装函数?

我希望用C/C++做到这一点.

我遇到了可变长度参数,但这表明使用libffi的 Python和C解决方案.

现在,如果我想用printf函数包装myprintf

我的工作如下:

void myprintf(char* fmt, ...)
{
    va_list args;
    va_start(args,fmt);
    printf(fmt,args);
    va_end(args);
}

int _tmain(int argc, _TCHAR* argv[])
{
    int a = 9;
    int b = 10;
    char v = 'C';
    myprintf("This is a number: %d and \nthis is a character: %c and \n another number: %d\n",a, v, b);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但结果不如预期!

This is a number: 1244780 and
this is a character: h and
another number: 29953463
Run Code Online (Sandbox Code Playgroud)

我错过的任何一点?

c c++ variadic-functions

46
推荐指数
4
解决办法
3万
查看次数

如何注释多个返回值的类型?

如何使用类型提示来注释返回一个Iterable总是产生两个值的函数:a bool和a str?提示Tuple[bool, str]很接近,除了它将返回值类型限制为元组,而不是生成器或其他类型的可迭代.

我很好奇,因为我想注释一个foo()用于返回多个值的函数,如下所示:

always_a_bool, always_a_str = foo()
Run Code Online (Sandbox Code Playgroud)

通常函数喜欢foo()做这样的事情return a, b(它返回一个元组),但我喜欢的类型暗示有足够的灵活性,以取代发电机或列表或别的东西返回的元组.

python type-hinting python-3.x python-3.5

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

如何在当前环境下启动tmux?

或至少它的一部分,这是有道理的.

更具体地说,我有一些环境变量,它们是通过运行脚本导出的,为手头的任务创建了一个适当的环境.当我运行tmux时,这些变量在全局或会话环境中都无处可见.当然我可以再次运行这个脚本但是......

如果我可以在我的.tmux.conf文件中指定特定的变量,我会感到满意:

set-environment VAR $VAR
Run Code Online (Sandbox Code Playgroud)

不做我期望的事.

提前致谢 :)

啊,我想我知道为什么.

当启动第二个tmux会话时,比如说在另一个终端中,它会从第一个终端复制环境.第一个几乎采用了调用shell的当前环境并为它添加了一些tmuxiness.

我目前的解决方法是在需要更改环境时停止并启动我的tmux会话.

tmux

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

python @abstractmethod装饰

我读过有关抽象基类的python文档:

这里:

abc.abstractmethod(function) 指示抽象方法的装饰员.

使用这个装饰器需要该类的元类是ABCMeta从它派生的.ABCMeta 除非所有抽象方法和属性都被覆盖,否则无法实例化具有派生自元类的类.

在这里

您可以将@abstractmethod装饰器应用于必须实现的draw()等方法; 然后,Python将为未定义该方法的类引发异常.请注意,只有在您实际尝试创建缺少该方法的子类的实例时才会引发该异常.

我已经用这段代码测试了一下:

import abc

class AbstractClass(object):
  __metaclass__ = abc.ABCMeta

  @abc.abstractmethod
  def abstractMethod(self):
    return

class ConcreteClass(AbstractClass):
  def __init__(self):
    self.me = "me"

c = ConcreteClass()
c.abstractMethod()
Run Code Online (Sandbox Code Playgroud)

代码很好,所以我不明白.如果我输入c.abstractMethod我得到:

<bound method ConcreteClass.abstractMethod of <__main__.ConcreteClass object at 0x7f694da1c3d0>>
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?ConcreteClass 必须实现抽象方法,但我也不例外.

python abc abstract-methods

31
推荐指数
2
解决办法
3万
查看次数

tmux手册页搜索突出显示

当我在搜索,例如,man ls而在tmux会议上,搜索字符串不高亮显示-页面跳转下来,让搜索字符串是在缓冲区的顶部线条,符合市场预期,但它并不突出.

在不在tmux会话中的同一个shell中执行相同的操作会导致突出显示的搜索字符串.

我不知道从哪里开始寻求解决这个问题.任何提示都表示赞赏.

gnu-screen ansi-escape terminfo terminal-emulator tmux

29
推荐指数
3
解决办法
6121
查看次数

带有__init __.pyx的Cython包:可能吗?

是否可以使用__init__.pyx(编译__init__.so)创建Python 2.7包?如果是这样的话?我没有运气好运.

这是我尝试过的:

  • setup.py:

    #!/usr/bin/env python
    
    from distutils.core import setup
    from distutils.extension import Extension
    from Cython.Distutils import build_ext
    
    foo = Extension(name='foo.__init__', sources=['foo/__init__.pyx'])
    bar = Extension(name='foo.bar', sources=['foo/bar.pyx'])
    
    setup(name='foo',
          packages = ['foo'],
          cmdclass={'build_ext':build_ext},
          ext_modules = [foo, bar])
    
    Run Code Online (Sandbox Code Playgroud)
  • foo/__init__.pyx:

    import foo.bar
    
    cpdef hello_world():
        print "hello world"
        foo.bar.blah()
    
    Run Code Online (Sandbox Code Playgroud)
  • foo/bar.pyx:

    cpdef blah():
        print "blah"
    
    Run Code Online (Sandbox Code Playgroud)

以上具有以下行为:

$ python -c 'import foo; foo.hello_world()'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named foo
Run Code Online (Sandbox Code Playgroud)

我看到 …

python cython python-import python-c-extension python-2.7

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

在加载路径中禁用有关emacs.d的警告

在最新的版本emacs(从24.3.50快照)没有在启动时警告.emacs.d恰好是在负载路径.

Warning (initialization): Your `load-path' seems to contain
your `.emacs.d' directory: ~/.emacs.d/
This is likely to cause problems...
Consider using a subdirectory instead, e.g.: /home/adriean/.emacs.d/lisp
Run Code Online (Sandbox Code Playgroud)

有没有办法禁用这个警告?

(因为我想把我的emacs.d放在加载路径中,现在作为一个快速的暴力黑客我去了(setq warning-minimum-level :error),但我宁愿尽快摆脱这个)

emacs emacs24

19
推荐指数
2
解决办法
9931
查看次数

无法锁定refs/heads/master

我相对来说是git的新手,我正面临着这个问题.git push命令显示以下错误.我将从一开始就向你解释我一直想做的事情.我创建了一个子模块,提交并推送它.推送抛出下面的错误.

Salman@PC_HOME ~/git/breakit-web-app (master)
$ git push origin master
error: refs/heads/master does not point to a valid object!
Counting objects: 4, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 421 bytes, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: bb/acl: salmanmanekia is allowed. accepted payload.
error: Ref refs/heads/master is at 6a47a0fd398610a75bdab8976f842dc0efd89f86 but expected 00000000000000000000000000000000000000000
remote: error: failed to lock refs/heads/master

To ssh://git@bitbucket.org/majuri/breakit-web-app.git
 ! [remote rejected] master -> master …
Run Code Online (Sandbox Code Playgroud)

git

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