小编jmd*_*_dk的帖子

java字符串到类

我有一个bean类名称为"Bean1".在我的main方法中,我有一个包含变量名称的字符串.String str ="Bean1"; 现在我如何使用String变量来获取类并访问Bean属性.我是Java新手.请帮忙.

java variable-variables

9
推荐指数
2
解决办法
2万
查看次数

用于临时变量赋值的 Python 上下文管理器

我经常需要用别的东西临时切换一个变量的值,做一些依赖于这个变量的计算,然后将变量恢复到它的原始值。例如:

var = 0
# Assign temporary value and do computation
var_ori = var
var = 1
do_something_with_var()  # Function that reads the module level var variable
# Reassign original value
var = var_ori
Run Code Online (Sandbox Code Playgroud)

这似乎是使用上下文管理器(with语句)的明显机会。Python 标准库是否包含任何这样的上下文管理器?

编辑

我知道这种事情通常由其他更好的方法处理,而不是临时更改变量。然而,我并不是要求明显的解决方法。

在我的实际工作案例中,我无法更改该do_something_with_var功能。实际上,这甚至不是一个函数,而是作为元编程的一部分在全局命名空间上下文中求值的一串代码。我给出的例子是我能想到的最简单的例子,它使我的问题与临时变量有关。我没有要求获得我的示例代码的解决方法(正确版本),而是要求获得我书面问题的答案。

python with-statement contextmanager python-3.x

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

用Java创建GUI的最简单方法?

我正在尝试为我编写的程序创建一个GUI,帮助您将站点的密码保存到文件中.截至目前,该程序将允许您编辑并在终端/ cmd中提供这些.我希望它有一个GUI,在开始时会有两个按钮,说明你想要"查看你的密码"或"编辑密码"."查看您的密码"会将您带到GUI的另一部分,让您看到自己的密码,"编辑密码"会将您带到GUI的一部分,让您将密码和详细信息添加到文件中.有人可以为我提供良好的在线教程,让我能够做到这一点吗?谢谢.

java user-interface swing

8
推荐指数
3
解决办法
5万
查看次数

argparse参数的目录路径

问题:我想写为用户在输入一个目录的路径add.argumentArgumentParser()

到目前为止:我已经写了这个

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('path', option = os.chdir(input("paste here path to biog.txt file:")), help= 'paste path to biog.txt file')
Run Code Online (Sandbox Code Playgroud)

任何想法,什么是该问题的理想解决方案?

python argparse

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

如何让 functools.lru_cache 返回新实例?

lru_cache在返回可变对象的函数上使用 Python ,如下所示:

import functools

@functools.lru_cache()
def f():
    x = [0, 1, 2]  # Stand-in for some long computation
    return x
Run Code Online (Sandbox Code Playgroud)

如果我调用这个函数,改变结果并再次调用它,我不会获得一个“新鲜”的、未改变的对象:

a = f()
a.append(3)
b = f()
print(a)  # [0, 1, 2, 3]
print(b)  # [0, 1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

我明白为什么会发生这种情况,但这不是我想要的。解决方法是让调用者负责使用list.copy

a = f().copy()
a.append(3)
b = f().copy()
print(a)  # [0, 1, 2, 3]
print(b)  # [0, 1, 2]
Run Code Online (Sandbox Code Playgroud)

但是我想在里面解决这个问题f。一个漂亮的解决方案是这样的

@functools.lru_cache(copy=True)
def f():
    ...
Run Code Online (Sandbox Code Playgroud)

尽管copy实际上没有任何参数被functools.lru_cache.

关于如何最好地实现这种行为的任何建议?

编辑

根据holdenweb 的回答,这是我的最终实现。 …

python caching mutable python-3.x

8
推荐指数
1
解决办法
1749
查看次数

Cython:将单个元素分配给多维内存视图切片

每当我为多维内存视图的一个切片分配单个值时,Cython似乎都会使用错误的步幅,除非该切片沿第一个维度。我在下面给出一个完整的例子:

# bug.py
import numpy as np

def bug():
    #cdef int[:, ::1] a
    a = 2*np.ones((2, 2), dtype=np.intc)
    a[:, :1] = 1
    print(np.asarray(a))
Run Code Online (Sandbox Code Playgroud)

如果我们在Python中运行此代码(例如python3 -c 'import bug; bug.bug()'),我们将得到

[[1 2]
 [1 2]]
Run Code Online (Sandbox Code Playgroud)

按预期打印。现在,通过将文件重命名为bug.pyx,用Cython对其进行编译,并将以下文件保存在Makefile同一目录中,

# Makefile
python = python3
python_config = $(python)-config
CC = gcc
CFLAGS  = $(shell $(python_config) --cflags) -fPIC
CFLAGS += $(shell $(python_config) --includes)
python_libdir = $(shell $(python) -c "import sysconfig; \
    print(sysconfig.get_config_var('LIBDIR'));")
LDLIBS  = -L$(python_libdir) -Wl,-rpath=$(python_libdir)
LDLIBS += $(shell $(python_config) --libs)
LDFLAGS …
Run Code Online (Sandbox Code Playgroud)

python cython slice python-3.x memoryview

8
推荐指数
1
解决办法
244
查看次数

将 NumPy 数组重新解释为不同的数据类型

假设我有一个很大的 NumPy 数组dtype int32

import numpy as np
N = 1000  # (large) number of elements
a = np.random.randint(0, 100, N, dtype=np.int32)
Run Code Online (Sandbox Code Playgroud)

但现在我希望数据是uint32. 我可以

import numpy as np
N = 1000  # (large) number of elements
a = np.random.randint(0, 100, N, dtype=np.int32)
Run Code Online (Sandbox Code Playgroud)

甚至

b = a.astype(np.uint32)
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下b都是 的副本a,而我想简单地将 中的数据重新解释auint32,以免复制内存。同样,使用np.asarray()也没有帮助。

起作用的是

b = a.astype(np.uint32, copy=False)
Run Code Online (Sandbox Code Playgroud)

它只是改变了dtype而不改变数据。这是一个引人注目的例子:

import numpy as np
a = np.array([-1, 0, 1, …
Run Code Online (Sandbox Code Playgroud)

python arrays types numpy python-3.x

8
推荐指数
1
解决办法
1001
查看次数

Matplotlib 2 mathtext:刻度标签中的字形错误

在使用默认的mathtext而不是LaTeX数学渲染引擎时,我在matplotlib 2.0.2中渲染数学时发现了错误.似乎一些字形(在我的情况下是减号和乘号)不能被mathtext识别.真正奇怪的是,只有当这些特定字形出现在刻度标签中时才会出现错误.当我故意在图标题中输入一些蹩脚的表达时,它可以正常工作.

考虑以下示例和结果图像:

import matplotlib
import matplotlib.pyplot as plt

# Customize matplotlib
matplotlib.rcParams.update({# Use mathtext, not LaTeX
                            'text.usetex': False,
                            # Use the Computer modern font
                            'font.family': 'serif',
                            'font.serif': 'cmr10',
                            'mathtext.fontset': 'cm',
                            })

# Plot
plt.semilogy([-0.03, 0.05], [0.3, 0.05])
plt.title(r'$-6\times 10^{-2}$')
plt.savefig('test.png')
Run Code Online (Sandbox Code Playgroud)

test.png

如图所示,刻度标签中的乘法和一些减号已被其他字符替换.如果我使用LaTeX(通过设置'text.usetex'True),一切都很好.为什么会发生这种情况,更重要的是,如何在不将mathtext更改为LaTeX的情况下修复它?

附加信息

这是运行示例代码时打印的警告:

mathtext.py:866: MathTextWarning: Font 'default' does not have a glyph for '\times' [U+d7]
  MathTextWarning)
mathtext.py:867: MathTextWarning: Substituting with a dummy symbol.
  warn("Substituting with a dummy symbol.", MathTextWarning)
Run Code Online (Sandbox Code Playgroud)

请注意,指数中出现的减号会正确呈现.如果我遗漏'mathtext.fontset': …

python unicode latex matplotlib text-rendering

7
推荐指数
2
解决办法
2424
查看次数

Bash:杀死子流程中的所有流程

在bash中,我可以pid通过$!变量获取最后一个子进程的进程ID()。然后,我可以在此子进程完成之前将其杀死:

(sleep 5) & pid=$!
kill -9 $pid
Run Code Online (Sandbox Code Playgroud)

这工作如广告。如果现在我在之后用更多命令扩展子流程,即使其他命令从未执行过sleep,该sleep命令也会在子流程被杀死后继续执行。

例如,考虑以下内容,它启动一个子流程并使用监视其暗杀ps

# Start subprocess and get its pid
(sleep 5; echo done) & pid=$!

# grep for subprocess
echo "grep before kill:"
ps aux | grep "$pid\|sleep 5"

# Kill the subprocess
echo
echo "Killing process $pid"
kill -9 $pid

# grep for subprocess
echo
echo "grep after kill:"
ps aux | grep "$pid\|sleep 5"

# Wait for sleep to finish …
Run Code Online (Sandbox Code Playgroud)

unix linux bash shell kill

6
推荐指数
1
解决办法
762
查看次数

Eclipse Milo、OPC-UA:从哪里开始?

我对 OPC-UA 世界完全陌生。

我需要建立一个关于如何让我们的 ERP 与 PLC 通信的概念证明。我正在评估充当 OPC-UA 服务器的软件(它正在运行)。我发现了 Milo 并让代码在 Eclipse 中工作。查看示例,我将一个玩具程序连接到 OPC-UA 服务器并执行...

基本的管道工作,但我不知道从哪里开始使用 OPC-UA 和 Milo。我一直无法找到介绍材料来帮助我理解这一切。

是否有关于 OPC-UA 架构以及 Milo 如何实现的文档?有没有比查看示例来弄清楚应该如何做更好的方法呢?

opc-ua milo

6
推荐指数
1
解决办法
4160
查看次数