小编Kam*_*yar的帖子

如何获得Python 3.7新的数据类字段类型?

Python 3.7引入了称为数据类的新功能.

from dataclasses import dataclass

@dataclass
class MyClass:
    id: int = 0
    name: str = ''
Run Code Online (Sandbox Code Playgroud)

在函数参数中使用类型提示(注释)时,可以使用inspect模块轻松获取带注释的类型.如何获取dataclass字段类型?

python python-dataclasses

20
推荐指数
3
解决办法
8056
查看次数

Python asyncio上下文

在线程中,我们有一个名为"线程上下文"的东西,我们可以在其中保存一些数据(状态)以便在特殊线程中进行访问.在asyncio中,我需要在当前执行路径中保存一些状态,以便所有后续协同程序都可以访问它.解决办法是什么?注意:我知道每个协同程序函数都是为asyncio中的执行路径实例化的,但由于某种原因,我无法将状态保存在函数属性中.(虽然这种方法反正不太好)

python multithreading asynchronous python-asyncio

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

如何获取Python变量注释?

在使用带注释字段定义类/模块时,如何像函数中那样获取注释?

class Test:
  def __init__(self):
    self.x : int
t = Test()
Run Code Online (Sandbox Code Playgroud)

现在我需要从 getattr(t,'x')

python type-annotation

8
推荐指数
2
解决办法
179
查看次数

Nginx代理闲置一会儿挂起

我们正在使用nginx proxy_pass功能桥接到后端应用程序的RESTful调用,并同时在同一系统上使用nginx Web套接字代理。有时(猜测系统有一段时间没有客户端请求时),nginx会冻结任何请求,直到我们重新启动它,然后一切正常。问题是什么?我是否需要更改保持活动设置?我已关闭nginx.conf中代理的缓冲区和缓存功能。

rest http nginx websocket

5
推荐指数
1
解决办法
1661
查看次数

KTor还是Spark?Kotlin Web服务的生产准备就绪了吗?

我正在使用Kotlin编写企业Web服务应用程序。我现在正在使用KTor,因为它异步且性能卓越。但是,您可能知道,Ktor有点年轻,“协程”功能在Kotlin中处于试验阶段!无论如何,使用Ktor明智吗?

java rest kotlin

5
推荐指数
1
解决办法
2586
查看次数

我可以将Ktor和Exposed混合使用吗?

我正在使用Ktor和Exposed ORM编写服务,这显然不是异步的.我来自Python世界,然后使用阻塞ORM和异步IO库是一个罪过,因为它可能会阻止线程中的所有用户.Kotlin是否适用同样的规则?我创建了一个糟糕的架构吗?

asynchronous nio kotlin kotlin-exposed

5
推荐指数
2
解决办法
996
查看次数

如何通过Kotlin Exposed ORM使用Postgresql枚举类型?

我已经将某些Postgresql类型添加到Exposed作为扩展。它有两个就绪类型,分别名为enumerationenumerationByName。我测试了这两者,但都没有成功将Postgre枚举类型映射到Kotlin枚举类。在读写中都会引发错误

enum class TicketStatus(val status: String) {
    Open("open"),
    Close("close"),
    InProgress("in_progress")
}

class Ticket(id: EntityID<UUID>) : Entity<UUID>(id) {
    companion object : EntityClass<UUID, Ticket>(Tickets)

    var geom by Tickets.geom
    var description by Tickets.description
    var status by Tickets.status
    var createdAt by Tickets.createdAt
    var updatedAt by Tickets.updatedAt
    var owner by Tickets.owner
}
Run Code Online (Sandbox Code Playgroud)

阅读时:

java.lang.IllegalStateException: open is not valid for enum TicketStatus
Run Code Online (Sandbox Code Playgroud)

postgresql orm enums kotlin kotlin-exposed

4
推荐指数
1
解决办法
875
查看次数

将DeriveGeneric用于参数化类型

我想为我的参数化类型使用自动DeriveGeneric.我收到错误.我想解码一个yaml文件ino FromJSON类型.

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE TypeFamilies  #-}

import Web.Scotty
import Data.ByteString.Char8 (pack, unpack)
import Data.ByteString.Lazy (toStrict, fromStrict)
import Data.List
import Data.Yaml
import GHC.Generics

data EPSG a = EPSG { epsg3857 :: a }

data Resolution = Resolution { max :: Int, items :: [Double]}

data Config = Config { minX :: EPSG Double, minY :: EPSG Double, maxX :: EPSG Double, maxY :: EPSG Double
                   , resolution :: EPSG Resolution
                   , metersPerUnit :: …
Run Code Online (Sandbox Code Playgroud)

haskell aeson

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

如何为Python的新NamedTuple类型定义构造函数?

您可能知道,这是在python中定义命名元组的最新类型:

from typing import NamedTuple


class MyType(NamedTuple):
    id: int = 0
    name: str = 0
Run Code Online (Sandbox Code Playgroud)

定义类型后,Python解释器定义一个获取ID和名称的默认构造函数,您可以使用字段实例化新对象。现在,我想使用一个字符串初始化一个新对象,并在函数中对其进行解析。如何定义另一个构造函数而不破坏良好的默认构造函数?

python oop

0
推荐指数
1
解决办法
1316
查看次数

为什么我的D代码没有达到预期的效果?

我正在为自己的乐趣做基准测试!我已经用许多编程语言编写了一部分代码,并使用ab对其进行基准测试,以查看哪些更快,更多.我知道这个方法可能不那么有效,并且不能用作使用某些方法的明显方法,但对于我自己的信息,我这样做.我想知道的另一个因素是在每种语言中编写相同的样本是多么容易/困难.我用Python/Python(asyncio),Haskell,Go,Kotlin和D编写了代码.我将D端口设置为比Go更快(或者至少速度相等).但不幸的是我的D代码比Go慢得多.在这里我把oth代码,请帮助我为什么代码没有按预期快.或者我完全错了我的期望?

import cbor;
import std.array : appender;
import std.format;
import std.json;
import vibe.vibe;


struct Location
{
    float latitude;
    float longitude;
    float altitude;
    float bearing;
}
RedisClient redis;


void main()
{
    auto settings = new HTTPServerSettings;
    redis = connectRedis("localhost", 6379);

    settings.port = 8080;
    settings.bindAddresses = ["::1", "127.0.0.1"];
    listenHTTP(settings, &hello);

    logInfo("Please open http://127.0.0.1:8080/ in your browser.");
   runApplication();
}

void hello(HTTPServerRequest req, HTTPServerResponse res)
{

if (req.path == "/locations") {

    immutable auto data = req.json;
    immutable auto loc = deserializeJson!Location(data);
    auto buffer = …
Run Code Online (Sandbox Code Playgroud)

d go

-4
推荐指数
1
解决办法
172
查看次数