小编uay*_*ver的帖子

确定合并是否将通过快进解决

我想知道在运行merge命令之前是否通过"快进"解析特定合并.

我知道我可以通过"快进"(使用--no-ff选项)专门请求合并不能解决.或者我可以尝试仅通过快进(使用--ff选项)来解决合并.

但有时我想知道在运行它之前是否会通过快进解决特定的合并.我意识到理论上我可以通过挖掘历史树来解决这个问题.而且我也意识到我可以运行合并,看看会发生什么,但如果我决定我更倾向于以其他方式解决合并,这就成了问题,因为我必须撤消合并(通过重新分配分支标签)在ref-log中)并再次执行.

注意:--dry-run问题(是否存在git-merge --dry-run选项?)更多的是关于查看合并中可能存在哪些合并冲突,而不是关于可能通过快进解决的合并.

git merge fast-forward

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

使用__new__覆盖子类中的__init__

我有兴趣使用该__new__功能将代码注入__init__子类的功能.我从文档中了解到python将调用__init__返回的实例__new__.但是,我__init__在返回它之前更改实例值的努力__new__似乎不起作用.

class Parent(object):

    def __new__(cls, *args, **kwargs):
        new_object = super(Parent, cls).__new__(cls)
        user_init = new_object.__init__
        def __init__(self, *args, **kwargs):
            print("New __init__ called")
            user_init(self, *args, **kwargs)
            self.extra()
        print("Replacing __init__")
        setattr(new_object, '__init__', __init__)
        return new_object

    def extra(self):
        print("Extra called")

class Child(Parent):

    def __init__(self):
        print("Original __init__ called")
        super(Child, self).__init__()

c = Child()
Run Code Online (Sandbox Code Playgroud)

上面的代码打印:

Replacing __init__
Original __init__ called
Run Code Online (Sandbox Code Playgroud)

但我希望它能打印出来

Replacing __init__
New __init__ called
Original __init__ called
Extra called
Run Code Online (Sandbox Code Playgroud)

为什么不?

我觉得Python正在调用原始值__init__ …

python methods object instance object-initializers

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