V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  dwjgwsm  ›  全部回复第 2 页 / 共 3 页
回复总数  48
1  2  3  
2018-04-04 14:39:06 +08:00
回复了 dwjgwsm 创建的主题 Python 为什么我用 numba 速度不升反降?
对比时就是简单地把 @numba.jit 这一句注释掉和不注释掉
2018-04-04 14:36:28 +08:00
回复了 dwjgwsm 创建的主题 Python 为什么我用 numba 速度不升反降?
第一,a = np.arange(10000) 这一句是排除在耗时计算之外的.
第二,b = list(a) 这一句是都被计入耗时之内的.所以对比是不存在这个问题的
2018-03-31 14:11:31 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 好的,非常非常感谢!
2018-03-31 13:44:18 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 也可以, 反正我的想法也无法实现, c=(a>b) & (a>locals()['abcd']) 和 c=(a>b) & (a>dict0['abcd']) 谁也不比谁好看
2018-03-31 13:07:54 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
run 里面的代码是会经常改变的(写各种交易策略的),如果将来真的崩了我就只有坚守老版本了
2018-03-31 12:59:08 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 这个你不用担心,我用 Manager 把它传走了
2018-03-31 12:56:00 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 恩,非常感谢!反正我的想法是无法实现的了,我还是老老实实用 locals()['abcd']吧,就是代码看着太难看了
2018-03-31 12:48:19 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
而且 aa.run 由于运算量大,还采用了多进程
2018-03-31 12:46:57 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 21 楼的代码简单表示了我想在 aa.run 中批量生成一批局部变量. 实际上我的代码逻辑还不是这样的,实际的逻辑是,类 aa 继承了一个基类,基类隐藏了很多复杂的功能实现,aa.run 每隔几秒钟运行一次,每一次运行完毕,会将 run 中的很多局部变量集中保存到基类中的一个字典变量中,下一次运行时,首先恢复这些局部变量.不知道你明白我的意思了吗
2018-03-31 12:34:26 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx 不管你取什么名字,这的确不重要, 但你在后面的代码中引用这个变量的时候你都得前面加个 locals()前缀啊
2018-03-31 12:27:50 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
一个更恰当的例子:

import numpy as np
class aa:
def run(self,dict0):
for k, v in dict0.items():
exec(k + "=v")
#############
print(x1)

if __name__ == '__main__':
dict0 = {'x1': np.arange(5), 'y1': np.arange(5) * 2}
r = aa()
r.run(dict0)
for key,value in dict0.items():
exec(key+"=value")
print('-------')
print(x1) #这个在类之外使用就没问题
2018-03-31 12:27:07 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@wwqgtxx x 所指代的字符串就是未知的,看来就是没有别的更好的办法了
2018-03-31 12:11:34 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@congeec ast.literal_eval 和 eval 都是不行的.你没明白我的意思,我的意思是要创建一个变量 abcd,而不是 abcd=eval('v')
2018-03-31 11:09:47 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
@Swift3030 麻烦详细说说,谢谢!
2018-03-31 11:08:53 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
因为在后面代码中引用这些变量的时候全部都得写成 locals()['abcd']这种形式,和其他变量的引用方式不一致,非常不协调.
比如后面的代码是这样的:

a=np.array(5)+4
b=np.array(5)*2
c=(a>b) & (a>locals()['abcd'])
......

这样整个代码显得非常不协调
2018-03-31 10:38:24 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
不是楼上想的那样,我希望能够在后面的代码中直接引用 abcd 这个变量,而不是 locals()['abcd']这样引用
2018-03-31 10:14:01 +08:00
回复了 dwjgwsm 创建的主题 Python 如何在类中将字符串转换成变量名?
setattr(self,x,v)
不行啊,还是 print(abcd)报错啊

是不是我没表达清楚啊,变量 abcd 不是类 aa 的属性,就是一个局部变量,我要实现的就是 abcd=np.arange(5) 这样的结果

缩进怎么弄?我发表主题的时候试图前面加空格,但是发表之后空格被删掉了
是不是要加{} 我再试试
{import numpy as np
class aa:
def __init__(self):
pass
def run(self):
x='abcd'
locals()['v']=np.arange(5)
v=np.arange(5)
exec(x+"=v")
print(abcd)

if __name__ == '__main__':
r=aa()
r.run()
}
2018-03-21 11:59:09 +08:00
回复了 dwjgwsm 创建的主题 问与答 把字符串变成变量的问题
你运行一下就知道了,确实可以修改啊
2018-03-08 10:12:35 +08:00
回复了 dwjgwsm 创建的主题 问与答 日期的格式化问题
明白了,谢谢各位!
2018-03-07 21:57:12 +08:00
回复了 dwjgwsm 创建的主题 问与答 日期的格式化问题
tt=t.__format__("%Y%m%d")
print(type(tt)) #输出字符串
看来 python 没有好的什么好办法了
1  2  3  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2306 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 03:14 · PVG 11:14 · LAX 20:14 · JFK 23:14
Developed with CodeLauncher
♥ Do have faith in what you're doing.