这篇是用来总结这段时间所学的所用的关于python3小tips,比较细微。主要是为了防止以后会遗忘掉这些而去重复搜索解决方法。
1.全局变量
在单个模块中,在引用之前就应先声明变量为全局变量。如果在声明之后需要修改变量值,则需要在修改之前再次声明。
目前只实现了两个模块之间的全局变量。
a文件中对全局变量进行定义
global script_id
def getvalue(value):
global script_id
script_id = value
def setvalue():
global script_id
return script_id
b文件中进行赋值即可调用
getvalue(5)
2.解析json数组
import json
data = {
'no': 1,
'name': 'Bruce',
'url': 'http://www.baidu.com'
}
json_str = json.dumps(data)
print("Python 原始数据:", repr(data))
print("JSON对象:", json_str)
data2 = json.loads(json_str)
print("data2['name']:", data2['name'])
print("data2['url']:", data2['url'])
3.websocket长连并对服务器传来数据进行解析
from ws4py.client.threadedclient import WebSocketClient
import json
data = {
'connectCode': 1,
'clientType': 1
}
sendJS = json.dumps(data)
class DummyClient(WebSocketClient):
def opened(self):
print()
def closed(self, code, reason=None):
print("关闭", code, reason)
def received_message(self, message):
print("recv:", message)
m = json.loads(str(message))[0]
print(m['msg'])
if __name__ == '__main__':
try:
ws = DummyClient('ws://xxxx/ws') #xxxx为请求地址
ws.connect()
ws.send(sendJS)
ws.run_forever()
except KeyboardInterrupt:
ws.close()
个人理解(可能不太对):对于某一条接收到的信息处理方法写在received_message中,可以通过判断穷举数据并进行相应的动作(目前信息较少且单一,所以穷举比较方便)。
4.中文变量(纯属娱乐)
偶然得知python3支持中文变量,比如如下代码:
名字 = "李晨"
def print_var(s:str)->None:
return s
print(print_var(名字))
输出结果为 李晨