小编Sta*_*tec的帖子

在git的命令行中显示合并状态的方法

我目前已使用以下bash脚本配置了git,以显示我所在的分支(以及用于显示我所在目录的命令行):

export PS1="\[\033[36m\]\u\[\033[m\]@\[\033[32m\] \[\033[33;1m\]\w\[\033[m\] (\$(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \$  \n$ "
export PS2="$ "
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以显示“正在合并”状态,以便在合并时merging在命令行中也显示该信息(在哪个分支上)。我已经在其他地方看到过这个,所以我很确定有可能,但是不知道如何。

git bash command-line .bash-profile

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

Python 3 正确地将整数转换为字节:

这个问题的答案看起来有两种方法可以bytes在 Python 3 中将整数转换为对象。它们显示

s = str(n).encode()

n = 5    
bytes( [n] )
Run Code Online (Sandbox Code Playgroud)

是一样的。然而,测试显示返回的值是不同的:

print(str(8).encode()) 
#Prints b'8' 
Run Code Online (Sandbox Code Playgroud)

print(bytes([8])) #prints b'\x08'
Run Code Online (Sandbox Code Playgroud)

我知道第一个方法将 更改为十六进制值为 56 的int 8字符串(我相信),但是第二个方法打印什么?utf-8这只是 8 的十六进制值吗?(utf-8退格键的值?)

同样,这两个大小都是一字节吗?看起来第二个有两个字符==两个字节,但我可能错了......

python byte utf-8

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

使用**kwargs设置属性时的Python3 AttributeError

简单地说,我明白为什么我不能使用这样的for循环设置属性**kwargs:

class Person():
    def __init__(self, onevar, *args, **kwargs):
        self.onevar = onevar
        for k in kwargs:
            self.k = kwargs[k]
            print(k, self.k)   

def run():
    ryan = Person('test', 4, 5, 6, name='ryan', age='fifty')
    print(ryan.name)

def main():
    run()

if __name__=="__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

这将返回以下内容:

AttributeError: 'Person' object has no attribute 'name'
Run Code Online (Sandbox Code Playgroud)

谁知道为什么?

python attributeerror

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

Object.create如何在Javascript中不允许多重继承?

MDN给出了继承的javascipt的这种解释(与展示的原型链中的注释):

var a = {a: 1}; 
// a ---> Object.prototype ---> null

var b = Object.create(a);
// b ---> a ---> Object.prototype ---> null
console.log(b.a); // 1 (inherited)

var c = Object.create(b);
// c ---> b ---> a ---> Object.prototype ---> null

var d = Object.create(null);
// d ---> null
console.log(d.hasOwnProperty); 
// undefined, because d doesn't inherit from Object.prototype
Run Code Online (Sandbox Code Playgroud)

在这里,我认为c从多个类继承.这怎么不是多重继承?

javascript inheritance

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

如何找到python字典或JSON对象的最大"深度"?

我有一个json字符串,我想知道它的最大深度是多少.深度我的意思是嵌入密钥的数量.因此,如果一个键作为7个"孩子"而且知道其他键有那么多,则深度为8.

由于可以嵌入其他对象的唯一类型(我相信)是数组和其他所有需要检查的字典.有没有办法检查这个?

我希望在没有外部模块的情况下实现这一点,但如果不是,我的目标是python3.

注意:这就是我所说的"深度"

以下字典:

{
  "path": "/0001_Anthem",
  "name": "0001_Anthem",
  "isMovie": true,
  "runtime": 3600,
  "thumbnailLocation": "/thubs/test.png",
  "id": 1, 
  "media": [
    {
      "path": "/0001_Anthem/louvers.mp4",
      "name": "louvers.mp4"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

将具有"深度"或长度,3因为最远的嵌入项是media数组(级别2)中的键/值对(级别3 ),在主dictionary(级别1)中.我不确定其他人使用的术语,这只是我认为有意义的术语.

谢谢

python json dictionary

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

在 WebGL 2 实例化中访问 gl_InstanceID

我正在尝试在 WebGL 2 中进行实例化。我想使用内置变量gl_InstanceID来索引到统一的浮点数组中。

我收到以下错误:

glDrawElementsInstancedANGLE: attempt to draw with all attributes having non-zero divisors

WebGL 2 实例化中唯一允许使用顶点属性的实例化(实例化数组)吗?

另外,规范是了解这些功能的唯一明确的地方吗?

webgl2

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

测试一个函数,使用多个测试用例但只使用一个断言?

我有一个类方法,它接受一个列表并根据函数确定该列表是否有效。

我想在存储为静态变量的三个列表上测试它,因为它们稍后在代码中的其他单元测试中使用。

def test__validate(self):
    decoder = Validator()
    slow_valid = Validator.validate(TestValidator.list_slow)
    med_valid = Validator.validate(TestValidator.list_med)
    fast_valid = Validator.validate(TestValidator.list_fast)


    assert slow_valid == True
    assert med_valid == False
    assert fast_valid == False
Run Code Online (Sandbox Code Playgroud)

删除多个断言语句的正确方法是什么?

我是否定义了多个版本,test__validate或者从最佳实践的角度来看,多个断言语句是否可以?

python pytest python-3.x

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

如何在Python 3中以字节显示大于255的值

信不信由你,我到处寻找这个答案.如何将大于255的值转换为bytesPython 3中的对象.我认为这需要一个字节字符串,但我不确定.

例:

n = 257 
print(n) #Prints 257
n = bytes([n])
print(n) #ValueError: bytes must be in range(0, 256)
Run Code Online (Sandbox Code Playgroud)

python byte bytestring

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

如何按数字顺序使用键打印 JSON(即,就像字符串键是整数一样)

我有以下 JSON

{
    "clips": { 
        "0": {
            "name": "Please", 
            "id": 1, 
        },
        "1": {
            "name": "Print", 
            "id": 2 
        },
        "10": {
            "name": "me", 
            "id": 3 
        },
        "2": {
            "name": "in order", 
            "id": 4 
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是这样制作的:

print(json.dumps(data, sort_keys=True, indent=4))这很棒,因为它按字母数字顺序打印键。但是,我需要按实际数字顺序打印这些内容,因此在 key"2"之前的 key "10"

我知道 python 通常不会对字典中的键进行排序,但我需要这样做,因为 json 实际上会被人类读取并且排序会很棒。谢谢你。

python json python-3.x

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

使用内置函数命名冲突?

我在尝试构建我的C++项目时遇到错误.

我正在尝试构建一个涉及套接字的跨平台项目.在Windows上我需要closesocket在套接字关闭时调用,而在linux上我只需要调用close.

因此,为了制作跨平台解决方案,我在我的基类中定义了以下内容:

#define closesocket close 
Run Code Online (Sandbox Code Playgroud)

在我的课程代码中,我有:

class TCPClient {
    void TCPClient::close()
    {
        closesocket(m_socket);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试构建时,我现在收到以下错误:

projects/cpp_sockets/src/project/tcp_client.cpp: In member function ‘void TCPClient::close()’:                                                                                                                        
/home/optonox/Documents/projects/cpp_sockets/src/project/tcp_client.cpp:44:22: error: no matching function for call to                                                                                                                        
 ‘TCPClient::close(SOCKET&)’                                                                                                                                                                                                                  
  closesocket(m_socket);  


                  ^                                                                                                                                                                                                                    /home/optonox/Documents/projects/cpp_sockets/src/project/tcp_client.cpp:42:6: note: candidate: void TCPClient::close()                                                                                                                        
 void TCPClient::close()                                                                                                                                                                                                                      
      ^~~~~~~~~                                                                                                                                                                                                                               
/home/optonox/Documents/projects/cpp_sockets/src/project/tcp_client.cpp:42:6: note:   candidate expects 0 arguments, 1                                                                                                                        
 provided                                                                                                                                                                                                                                     
src/project/CMakeFiles/cpp_sockets.dir/build.make:110: recipe for target 'src/project/CMakeFiles/cpp_sockets.dir/tcp_c  
Run Code Online (Sandbox Code Playgroud)

我猜发生了什么事是,closesockettypedefd为1 close,因此试图调用TCPclient成员函数?

答:那是怎么回事?和B.我怎么能阻止这个?

如果我注释掉那个电话,项目编译就好了closesocket.

c++

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