小编Int*_*rer的帖子

什么是 OPC-UA 中的节点?

我一直在互联网上阅读,以很好地解释 OPC-UA 中的节点。似乎有一些库可以用于它,但实际上没有一个解释节点。OPC-UA 中节点的用途是什么?

注意:此处为 OPC 和 OPC-UA 菜鸟

opc-ua node-opcua

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

Python日志记录如何跟踪日志中的主机名?

我正在以这种方式使用 Python 日志记录:

logger = logging.getLogger("my_logger")
logger.info("Some text.")
Run Code Online (Sandbox Code Playgroud)

我有一堆物联网设备都在运行(制作日志)。他们将日志数据流式传输到数据库。为了区分来源,我需要包括来源 IP 地址。

有没有办法使用日志记录获取主机名?是否在 LogRecords 中跟踪/跟踪 IP 地址或主机名?

一般来说,将主机名添加到 LogRecord 的最佳方法是什么?

python logging python-logging

4
推荐指数
3
解决办法
4547
查看次数

Python模拟如何编辑模拟函数的返回值

我在一个单独的文件中有一个函数,在另一个文件中有一个单元测试,我的目标是获取该函数的实际返回值并对其进行编辑。

my_module.py

def function_to_test(a,b,c)(arg1,arg2,arg3):
    data_to_send = Mongoclient.find({_id:'arg1'})
    return data_to_send

def another_function():
    """Do something."""
    value_to_be_used = function_to_test(a,b,c)
    another_function_call_in_another_module(value_to_be_used)
Run Code Online (Sandbox Code Playgroud)

test_file.py

class Mytest(unittest.TestCase):
    def test_one(self):
        # return_value is based on the original return value, 
        # and should vary based on the original returned value
        with patch(my_module.function_to_test, return_value='new data'):  
            my_module.another_function()
Run Code Online (Sandbox Code Playgroud)

新数据是原始数据+对原始数据的一些编辑。

我该如何实现这一目标?

python unit-testing mocking mongodb flask

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

Python 类型提示:何时使用 MutableSequence 与 List

我一直在阅读有关typing.Sequence和 的内容typing.MutableSequence。两者都没有大量的“轻松阅读”,一切都直接进入细节。

这个答案可以指定Python类型注释中的方差吗?

序列是列表的只读版本

MutableSequence所以这让我想知道,和 只是普通之间有什么区别List


更多细节

我能找到的最好的来源是Python 数据模型的标准类型层次结构部分。

从阅读该部分来看Mutable sequences,似乎可能MutableSequence是 ? 的“父母” List

换句话说,可以互换使用它们,只是MutableSequence限制少一点?

python list sequence type-hinting python-typing

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

C 如何在没有编译器警告的情况下将地址打印为十进制值(不是十六进制)

我有一个int指向另一个地址的指针int

当使用格式说明符打印指针时%p(如 Stack Overflow 上的许多答案所建议的那样),它以十六进制表示形式打印。

如何用十进制表示打印指针的值?


代码示例

我想出了一个可以%zu这个答案中使用的人

int i = 1;
int *p = &i;
printf("Printing p: %%p = %p, %%zu = %zu\n", p, p);
Run Code Online (Sandbox Code Playgroud)

当我使用https://onlinegdb.com/EBienCIJnm运行该代码时

  • 它实际上以十进制打印正确的值
  • 它也会输出编译器警告
warning: format ‘%zu’ expects argument of type ‘size_t’, but argument 3 has type ‘int *’ [-Wformat=]                                                                 
Printing p: %p = 0x7ffee623d8c4, %zu = 140732759529668
Run Code Online (Sandbox Code Playgroud)

有没有办法printf使用十进制表示的指针值,而没有编译器警告?

c printf pointers memory-address format-string

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

Python 类型提示 可使用一种已知位置类型调用,然后使用 *args 和 **kwargs

我的以下功能foo,其中有:

  • 具有已知类型的一个位置 arg
  • 之后有可变数量的位置参数和关键字参数
from typing import Callable

def foo(bar: str, *args, **kwargs) -> None:
    """Some function with one positional arg and then *args and **kwargs."""

foo_: Callable[[str, ...], None] = foo  # error: Unexpected '...'
Run Code Online (Sandbox Code Playgroud)

我如何输入提示?

目前,mypy==0.812抛出错误:error: Unexpected '...' [misc]

python typing type-hinting mypy

4
推荐指数
2
解决办法
1234
查看次数

使用Python的日期时间时间戳,精度为微秒级

我试图在 Windows 操作系统和 macOS 上使用 Python 3.10+ 获取精确到微秒的时间戳。

\n

在 Windows 操作系统上,我注意到 Python 的内置time.time()(与 配对datetime.fromtimestamp())并且datetime.datetime.now()时钟似乎较慢。它们没有足够的分辨率来区分微秒级事件。好消息是和time之类的函数似乎确实使用了足够快的时钟来测量微秒级事件。time.perf_counter()time.time_ns()

\n

可悲的是,我不知道如何将它们放入datetime对象中。如何将 PEP 564 的纳秒分辨率时间函数的输出time.perf_counter()转换对象datetime

\n

注意:我不需要纳秒级的东西,所以可以放弃低于 1-\xce\xbcs 的精度。

\n
\n

目前的解决方案

\n

这是我当前的(hacky)解决方案,实际上工作正常,但我想知道是否有更干净的方法:

\n
import time\nfrom datetime import datetime, timedelta\nfrom typing import Final\n\nIMPORT_TIMESTAMP: Final[datetime] = datetime.now()\nINITIAL_PERF_COUNTER: Final[float] = time.perf_counter()\n\n\ndef get_timestamp() -> datetime:\n    """Get a high resolution timestamp with \xce\xbcs-level precision."""\n    dt_sec = time.perf_counter() - …
Run Code Online (Sandbox Code Playgroud)

python time datetime timestamp

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

将 __all__ 放在 Python 文件中的什么位置?

我想知道,Python 文件中的标准位置是__all__什么?

我的假设直接在导入语句下方。但是,我在任何地方都找不到明确说明/询问的内容。那么,一般来说,应该放__all__哪里呢?

它会放在下面的示例文件中的什么位置?

#!/usr/bin/env python3

"""Where to put __all__."""


from time import time


# I think it should go here: __all__ = ["Hello", "Hello2"]


SOME_GLOBAL = 0.0


class Hello:
    def __init__(self):
        pass


class Hello2:
    def __init__(self):
        pass


if __name__ == "__main__":
    pass

Run Code Online (Sandbox Code Playgroud)

先感谢您!

python readability pep8 code-readability flake8

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

如何在 macOS 上找到 C 头文件 errno.h 的位置?

我是 C 语言的新手,正在尝试查看头文件的源代码errno.h

我怎样才能:

  1. 找出头文件在我的计算机上的存储位置?
  2. 查看头文件的来源?

我试过的

根据这个答案gcc --print-file-name=errno.h在我的$HOME目录中运行只会输出errno.h.

这个答案,运行cpp -dM /usr/include/errno.h | grep 'define E' | sort -n -k 3输出:

clang: error: no such file or directory: '/usr/include/errno.h'
clang: error: no input files
Run Code Online (Sandbox Code Playgroud)

这个答案,运行clang -E /usr/include/errno.h输出:

clang: error: no such file or directory: '/usr/include/errno.h'
clang: error: no input files
Run Code Online (Sandbox Code Playgroud)

我知道有效的一种解决方案是 running sudo find / -name "errno*.h" -type f。但是,这会返回许多结果。我想知道是否有某种编程方式可以使用 …

c macos errno header-files macos-catalina

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

AWS S3 API list-multipart-uploads 时间戳的时区是什么?

我正在使用AWS CLI v2如下方式查看分段上传:

aws s3api list-multipart-uploads --bucket my-bucket-name
Run Code Online (Sandbox Code Playgroud)

Uploads响应的密钥具有Initiated密钥。从list-multipart-uploads文档

启动分段上传的日期和时间。

对我来说(我位于太平洋时区 (PT)),它看起来像这样:

"Initiated": "2020-06-02T02:20:49+00:00"
Run Code Online (Sandbox Code Playgroud)

这个时间戳的时区是什么?


背景

我位于太平洋时区 (PT)

启动上传的区域以及我运行list-multipart-uploads命令的位置us-west-2(请参阅区域、可用区和本地区域)。

对我来说,它的起始格式是:(yyyy-mm-dd'T'HH:mm:ss基于这些

该时间戳是否应该预先转换为太平洋时间,还是以 UTC 格式给出?

timezone amazon-s3 amazon-web-services aws-cli

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