来自 Python 背景,我现在正在尝试学习 Julia,所以我的问题可能与我在 Python 和 Julia 之间的虚拟环境之间的混淆有关。在 Julia 中,我在将包添加到项目虚拟环境中时遇到困难。但是,当我不使用项目环境(例如在 REPL 中)时,添加包没有问题:
(@v1.6) pkg>add CSV
成功添加CSV包。但是,当我激活我的项目环境(称为self_learn)并尝试将相同的包添加到此环境中时,我在 REPL 中看到以下错误消息:
(@1.6) pkg> activate .
(self_learn) pkg> st
Project self_learn v0.1.0
Status `D:\Dropbox\Julia\self_learn\Project.toml` (empty project)
(self_learn) pkg> add CSV
Resolving package versions...
Updating `D:\Dropbox\Julia\self_learn\Project.toml`
[336ed68f] + CSV v0.8.4
Updating `D:\Dropbox\Julia\self_learn\Manifest.toml`
[336ed68f] + CSV v0.8.4
[9a962f9c] + DataAPI v1.6.0
[e2d170a0] + DataValueInterfaces v1.0.0
[82899510] + IteratorInterfaceExtensions v1.0.0
[69de0a69] + Parsers v1.1.0
[2dfb63ee] + PooledArrays v1.2.1
[91c51154] + SentinelArrays v1.2.16
[3783bdb8] + TableTraits …Run Code Online (Sandbox Code Playgroud) 考虑以下代码:
using Plots
gr()
x = 1:10
y = rand(10)
plot(x, y)
xaxis!(minorticks=10)
Run Code Online (Sandbox Code Playgroud)
产生以下图:
x轴和 y 轴上都有 10 个小刻度线。我喜欢仅在 x 轴上设置小刻度线的数量,而 y 轴上没有小刻度线。以同样的方式,我可以问如何才能独立于 x 轴的 y 轴上的刻度线数量。
我很感激任何帮助。谢谢。
考虑以下假设代码:
class B(object):
def __init__(self):
self.b = 2
def foo(self):
out1 = [eval('self.b')] # ok
print(out1) # prints: [2]
out2 = [eval(cmd) for cmd in ['self.b']] # fails
print(out2) # NameError: name 'self' is not defined
b = B()
b.foo()
Run Code Online (Sandbox Code Playgroud)
为什么语句是out1ok 而不是 for out2,这会给出错误“'self' is not defined”?
我正在学习 Python,在试验eval. 是的,我知道eval在这个例子中使用 是不合适的,但只是为了从表面上看这个例子,有人可以解释为什么语句 forout2给出错误信息吗?似乎两个语句都应该起作用并给出相同的结果。
感谢您的任何指导。