gpt4 book ai didi

python - 在python类中创建pybullet客户端的多个实例

转载 作者:行者123 更新时间:2023-12-04 12:05:47 27 4
gpt4 key购买 nike

我在 python 类中使用 pybullet。我将其导入为 import pybullet as p .
当我有几个使用 pybullet 的类实例时,是类 p每个实例都相同还是每个实例的“变量” p 是唯一的?

文件

import pybullet as p

class Foo:
def __init__(self, counter):
physicsClient = p.connect(p.DIRECT)
def setGravity(self):
p.setGravity(0, 0, -9.81)
(more code)

和 main.py
from foo import Foo

foo1 = Foo(1)
foo2 = Foo(2)
foo1.setGravity()

setGravity()影响 p在 foo1 和 foo2 中还是在 foo1 中?

最佳答案

您可以使用 bullet_client 来获取两个不同的实例。像这样:

import pybullet as p
import pybullet_utils.bullet_client as bc


class Foo:
def __init__(self, counter):
self.physicsClient = bc.BulletClient(connection_mode=p.DIRECT)

def setGravity(self):
self.physicsClient.setGravity(0, 0, -9.81)


foo1 = Foo(1)
foo2 = Foo(2)
foo1.setGravity()
foo2.setGravity()

print("Adress of foo1 bullet client 1 : " + str(foo1.physicsClient))
print("Adress of foo2 bullet client 2 : " + str(foo2.physicsClient))

输出 :
Adress of  foo1 bullet client 1 : 
<pybullet_utils.bullet_client.BulletClient object at 0x7f8c25f12460>
Adress of foo2 bullet client 2 :
<pybullet_utils.bullet_client.BulletClient object at 0x7f8c0ed5a4c0>

正如你在这里看到的:你有两个不同的实例,每个实例都存储在不同的地址

请参阅官方存储库中的以下示例:
https://github.com/bulletphysics/bullet3/blob/master/examples/pybullet/gym/pybullet_utils/examples/multipleScenes.py

关于python - 在python类中创建pybullet客户端的多个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61504794/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com