首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个python类中创建多个pybullet客户端实例

在一个python类中创建多个pybullet客户端实例
EN

Stack Overflow用户
提问于 2020-04-29 22:53:57
回答 1查看 535关注 0票数 4

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

foo.py

代码语言:javascript
复制
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

代码语言:javascript
复制
from foo import Foo

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

setGravity()会影响foo1和foo2中的p,还是只影响foo1?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-29 23:43:39

您可以使用bullet_client来获取两个不同的实例。如下所示:

代码语言:javascript
复制
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))

输出:

代码语言:javascript
复制
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

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61504794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档