首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查PyVmomi对象是否属于python中的某个类

检查PyVmomi对象是否属于python中的某个类
EN

Stack Overflow用户
提问于 2020-12-14 20:39:35
回答 1查看 460关注 0票数 0

我试图弄清楚如何检查一个对象是否属于特定的类,它对于诸如"str“、"int”等类很好,但对于模块中的自定义类则不是很好。

这是我尝试过的。

代码语言:javascript
复制
In [36]: type(cluster)                                                                                                                                                                                 
Out[36]: pyVmomi.VmomiSupport.vim.ComputeResource

In [37]: type(cluster) == pyVmomi.VmomiSupport.vim.ComputeResource                                                                                                                                     
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/source/modregk_bga/eti-data-pipelines/datapipes/lm-sql-capacity/libs/vcenser.py in <module>
----> 1 type(cluster) == pyVmomi.VmomiSupport.vim.ComputeResource

AttributeError: module 'pyVmomi.VmomiSupport' has no attribute 'vim'

In [38]: type ("str")                                                                                                                                                                                  
Out[38]: str

In [39]: type ("str") == str                                                                                                                                                                           
Out[39]: True

In [40]: isinstance(cluster.summary, pyVmomi.VmomiSupport.vim.ComputeResource.Summary)                                                                                                                 
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
/source/modregk_bga/eti-data-pipelines/datapipes/lm-sql-capacity/libs/vcenser.py in <module>
----> 1 isinstance(cluster.summary, pyVmomi.VmomiSupport.vim.ComputeResource.Summary)

AttributeError: module 'pyVmomi.VmomiSupport' has no attribute 'vim'

In [41]: 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-02 12:43:10

通过使用等实例,它可以做您想做的事情。

例如,这里要使用isinstance检查一个对象是否是一个集群。

代码语言:javascript
复制
#!/usr/bin/env python
from pyVim.connect import SmartConnect, Disconnect
from pyVmomi import vim
import ssl
import atexit

host = 'change me to vCenter IP or hostname'
username = 'administrator@vsphere.local'
password = 'change me to user password'
mob = vim.ComputeResource

if __name__ == "__main__":
    context = None
    if hasattr(ssl, '_create_unverified_context'):
        context = ssl._create_unverified_context()

    si = SmartConnect(host=host,
                      user=username,
                      pwd=password,
                      sslContext=context)

    atexit.register(Disconnect, si)

    content = si.content

    mob_list = content.viewManager.CreateContainerView(content.rootFolder,
                                                       [mob],
                                                       True)

    for mob in mob_list.view:
        # Check if an object is the cluster
        if isinstance(mob, vim.ComputeResource):
            print("%s is Cluster object" % mob.name)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65296179

复制
相关文章

相似问题

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