如何bytes在Python 3中"声明"一个空变量?
我试图接收块的字节,然后将其更改为utf-8字符串.但是,我不确定如何声明将保存整个字节序列的初始变量.调用此变量msg.我不能声明它None,因为你不能添加一个bytes和一个NoneType.我不能将它声明为unicode字符串,因为那时我将尝试添加bytes到字符串.此外,随着接收程序的发展,它可能会让我陷入一系列仅包含部分字符的字节.我不能没有msg声明,因为msg在转让之前会被引用.以下是有问题的代码
def handleClient(conn, addr):
print('Connection from:', addr)
msg = ?
while 1:
chunk = conn.recv(1024)
if not chunk:
break
msg = msg + chunk
msg = str(msg, 'UTF-8')
conn.close()
print('Received:', unpack(msg))
Run Code Online (Sandbox Code Playgroud) 我试图将参数传递给函数,并指示const接收函数应该考虑该参数.
我的理解是,下面的代码示例显示了确保test可以使用argv变量调用该函数的唯一方法,该变量未声明为const.
void test(const char * const *arr);
int main(int argc, char *argv[], char *env[])
{
test(argv);
}
void test(const char * const *arr)
{
}
Run Code Online (Sandbox Code Playgroud)
但是,gcc给了我一个警告,如下所示:
E:\Projects\test>gcc -o test test.c
test.c: In function 'main':
test.c:5:2: warning: passing argument 1 of 'test' from incompatible pointer type
[enabled by default]
test.c:1:6: note: expected 'const char * const*' but argument is of type 'char **'
Run Code Online (Sandbox Code Playgroud)
这让我相信我在这里所做的事情是错误的.有没有更好的方法将参数传递给函数,并指出它应该被const接收函数考虑?