小编cal*_*lys的帖子

Python多处理 - 将类方法应用于对象列表

有一种简单的方法可以使用多处理来完成相同的操作吗?

for sim in sim_list:
  sim.run()
Run Code Online (Sandbox Code Playgroud)

其中sim_list的元素是"模拟"对象和运行()是模拟类的方法修改的对象的属性.例如:

class simulation:
    def __init__(self):
        self.state['done']=False
        self.cmd="program"
    def run(self):
        subprocess.call(self.cmd)
        self.state['done']=True
Run Code Online (Sandbox Code Playgroud)

sim_list中的所有sim都是独立的,因此策略不必是线程安全的.

我尝试了以下内容,这显然是有缺陷的,因为参数是通过deepcopy传递的,并且没有就地修改.

from multiprocessing import Process

for sim in sim_list:
  b = Process(target=simulation.run, args=[sim])
  b.start()
  b.join()
Run Code Online (Sandbox Code Playgroud)

python multiprocessing

13
推荐指数
1
解决办法
6392
查看次数

Fortran 2003中的类型绑定函数重载

我有一个Fortran派生类型T,它包含(许多)不同等级和类型的数据数组.这些数组隐藏在一个复杂的数据结构中,我想有一个getter函数,它执行以下操作:

a => T%get(data_id)
Run Code Online (Sandbox Code Playgroud)

其中"a"是给定类型的数组指针,data_id是一个整数,用于查找数据结构内的数据.我通过在通用名称下重载许多"get_thistype()"函数来做到这一点.

TYPE T
   PROCEDURE :: get_real
   PROCEDURE :: get_integer
   GENERIC   :: get => get_real,get_integer
END TYPE
Run Code Online (Sandbox Code Playgroud)

如果get_thistype()例程是子例程,则此方法有效,但如果它们被写为函数则不行.这意味着我的代码如下:

CALL T%get(a,data_id)
Run Code Online (Sandbox Code Playgroud)

我发现它的可读性要低得多.有没有办法重载具有相同参数列表但返回类型不同的函数?或者我必须使用子程序吗?

fortran

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

Git:将所有对象推送到远程存储库(不仅仅是引用,而且绝对是所有的 blob、树和提交)

上下文:我(错误地)使用 Git 不是为了版本控制,而是为了记录文件之间的关系。Git 的内部数据结构(基本上是一个对象图)正是我需要的(加密哈希等),并且有很多非常好的工具来操作数据。

到目前为止,我无法做的一件事是将整个图形推送到远程存储库。据我了解,git push只作用于refs,而不作用于objects。是否有一种简单的方法可以将所有对象(提交、树、blob)推送到远程,或者我是否必须branch首先在每个提交上添加一个 ref(例如 a ),然后推送所有分支,然后删除所有分支(本地和远程)?

git git-push

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

标签 统计

fortran ×1

git ×1

git-push ×1

multiprocessing ×1

python ×1