想象一下一些numpy数组,例如x = np.linspace(1,10).
x[i:j]让我了解x范围[i,j).我喜欢我也可以这样做x[i:-k],排除了最后的k元素.
但是,为了包含我需要做的最后一个元素x[i:].
我的问题是:如果我需要循环,我如何组合这两个符号k.
说我想这样做:
l = list()
for k in [5,4,3,2,1]:
l.append(x[:-k])
l.append(x[:])
Run Code Online (Sandbox Code Playgroud)
令我恼火的是最后一行.在这个简单的例子当然,它没有太大的区别,但有时这会变得更加烦人.我想念的是更像DRY的东西.
以下代码段不会产生预期的结果,但代表了我寻求的代码样式:
l = list()
for k in [5,4,3,2,1,0]:
l.append(x[:-k])
Run Code Online (Sandbox Code Playgroud)
谢谢你的支持.
我正在尝试使用python-socketio设置socket.io服务器。这是一个最小的工作示例:
import asyncio
from aiohttp import web
import socketio
import random
sio = socketio.AsyncServer(async_mode='aiohttp')
app = web.Application()
sio.attach(app)
@sio.on('connect')
def connect(sid, environ):
print("connected: ", sid)
@sio.on('sendText')
async def message(sid, data):
print("message ", data)
# await asyncio.sleep(1 * random.random())
# print('waited', data)
@sio.on('disconnect')
def disconnect(sid):
print('disconnect ', sid)
if __name__ == '__main__':
web.run_app(app, host='0.0.0.0', port=8080)
Run Code Online (Sandbox Code Playgroud)
运行正常,例如,我可以执行(在node.js中)
const io = require('socket.io-client');
const socket = io('ws://localhost:8080');
socket.emit('sendText', 'hey 1')
socket.emit('sendText', 'hey 2')
socket.emit('sendText', 'hey 3')
Run Code Online (Sandbox Code Playgroud)
如果我运行服务器并运行上面的节点脚本,我将获得服务器端
已连接:c1e687f0e2724b339fcdbefdb5aaa8f8
消息嘿1
消息嘿2
消息嘿3
但是,如果我在代码中用await …
我们以一个简单的类为例:
class Vector:
def __init__(self):
self.x = 1
self.y = 1
self.z = 1
Run Code Online (Sandbox Code Playgroud)
我想要的是给这个类一个变量,sum这样我就可以这样做
v = Vector()
v.sum
Run Code Online (Sandbox Code Playgroud)
我得到了总和x+y+z(在这种情况下为3).当然,我可以很容易地创建一个类方法来做到这一点,但后来我必须写v.sum()而不是v.sum.有什么方法可以隐藏这个类在请求变量时实际调用函数的事实吗?
提前致谢.
我正在尝试构建一个非常简单的网格。我有一个盒子:
box_size = 50;
lb = 10.;
Point(1) = {-box_size/2, -box_size/2, -box_size/2, lb};
Point(2) = {box_size/2, -box_size/2, -box_size/2, lb};
Point(3) = {box_size/2, box_size/2, -box_size/2, lb};
Point(4) = {-box_size/2, box_size/2, -box_size/2, lb};
Line(1) = {1, 2};
Line(2) = {2, 3};
Line(3) = {3, 4};
Line(4) = {4, 1};
Line Loop(5) = {1, 2, 3, 4};
Plane Surface(6) = {5};
Extrude {0, 0, box_size} {
Surface{6};
}
Run Code Online (Sandbox Code Playgroud)
这工作得很好,gmsh 很乐意对其进行 (3D) 网格划分。问题是我要确保盒子内的某些点是节点。所以我的问题是,我如何确保这些点,比如这些
lc = 10;
Point(5) = {7.150548, 1.000000, -6.990684, lc};
Point(6) = …Run Code Online (Sandbox Code Playgroud) python ×3
asynchronous ×1
gmsh ×1
mesh ×1
numeric ×1
numpy ×1
oop ×1
python-3.x ×1
scipy ×1
socket.io ×1