导航:首页 > 编程语言 > python查看obj模型

python查看obj模型

发布时间:2022-07-14 06:17:57

Ⅰ 怎么用python把*.obj文件里面的3D模型特征提取出来

1,去官网hge.net/下载Assimp放到centos7下,并解压
2,仔细阅读INSTALL文件
3,cmake CMakeLists.txt -G 'Unix Makefiles'
4,make
5,make install
6,检查ls /usr/local/lib/libassimp*或/usr/local/include/assimp
7,准备安装PyAssimp,git clone:hss...
8,确认是否安装python2.7.X
9,python setup.py install 安装完成
接下来就可以测试了

from pyassimp import *
scene = load('feiji1.obj')assert len(scene.meshes)
mesh = scene.meshes[0]assert len(mesh.vertices)
print(mesh.vertices[0])
release(scene)

Ⅱ python怎么查看object 里的成员变量

首先通过一个例子来看一下本文中可能用到的对象和相关概念。

  • #coding:utf-8import inspectprint inspect.ismole(inspect) #Trueprint inspect.isfunction(inspect.isfunction) #Trueprint inspect.isbuiltin(sorted) #Trueprint inspect.isroutine(sorted) #True

  • 对于实现了__call__的类实例,这个方法会返回False。如果目的是只要可以直接调用就需要是True的话,不妨使用isinstance(obj, collections.Callable)这种形式。我也不知道为什么Callable会在collections模块中,抱歉!我猜大概是因为collections模块中包含了很多其他的ABC(Abstract Base Class)的缘故吧:)

  • #coding:utf-8import collectionsclass Dog(object): def __call__(self, name):#实现__call__方法就可以直接调用对象了

  • print 'i am a dog named ' , name


  • dog = Dog()

  • dog('DaHuang')print isinstance(dog, collections.Callable) #Trueprint dog.__class__.__bases__

  • 3.2. 获取对象信息

  • getmembers(object[, predicate]):这个方法是dir()的扩展版,它会将dir()找到的名字对应的属性一并返回,形如[(name, value), ...]。另外,predicate是一个方法的引用,如果指定,则应当接受value作为参数并返回一个布尔值,如果为False,相应的属性将不会返回。使用is*作为第二个参数可以过滤出指定类型的属性。

  • getmole(object):还在为第2节中的__mole__属性只返回字符串而遗憾吗?这个方法一定可以满足你,它返回object的定义所在的模块对象。

  • get{file|sourcefile}(object):获取object的定义所在的模块的文件名|源代码文件名(如果没有则返回None)。用于内建的对象(内建模块、类、函数、方法)上时会抛出TypeError异常。

  • get{source|sourcelines}(object):获取object的定义的源代码,以字符串|字符串行表返回。代码无法访问时会抛出IOError异常。只能用于

  • Ⅲ python ,函数与方法,f_obj.count_words()与count_words(f_obj)其中的区别

    f_obj是一个str类型的变量

    而str类里没有count_words()方法,所以报错
    count_words()是一个独立的函数,它不属于任何类,因此调用形式就是count_words(参数)

    Ⅳ 列出Python模块中的所有函数问题,怎么解决

    比如,sys模块: import sys
    sys.argv 是一个 list,包含所有的命令行参数.
    sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.
    sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a
    sys.exit(exit_code) 退出程序
    sys.moles 是一个dictionary,表示系统中所有可用的mole
    sys.platform 得到运行的操作系统环境
    sys.path 是一个list,指明所有查找mole,package的路径.

    操作系统相关的调用和操作: import os
    os.environ 一个dictionary 包含环境变量的映射关系
    os.environ["HOME"] 可以得到环境变量HOME的值
    os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook')
    注意windows下用到转义
    os.getcwd() 得到当前目录
    os.getegid() 得到有效组id os.getgid() 得到组id
    os.getuid() 得到用户id os.geteuid() 得到有效用户id
    os.setegid os.setegid() os.seteuid() os.setuid()
    os.getgruops() 得到用户组名称列表
    os.getlogin() 得到用户登录名称
    os.getenv 得到环境变量
    os.putenv 设置环境变量
    os.umask 设置umask
    os.system(cmd) 利用系统调用,运行cmd命令

    内置模块(不用import就可以直接使用)常用内置函数:
    help(obj) 在线帮助, obj可是任何类型
    callable(obj) 查看一个obj是不是可以像函数一样调用
    repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
    eval_r(str) 表示合法的python表达式,返回这个表达式
    dir(obj) 查看obj的name space中可见的name
    hasattr(obj,name) 查看一个obj的name space中是否有name
    getattr(obj,name) 得到一个obj的name space中的一个name
    setattr(obj,name,value) 为一个obj的name
    space中的一个name指向vale这个object
    delattr(obj,name) 从obj的name space中删除一个name
    vars(obj) 返回一个object的name space。用dictionary表示
    locals() 返回一个局部name space,用dictionary表示
    globals() 返回一个全局name space,用dictionary表示
    type(obj) 查看一个obj的类型
    isinstance(obj,cls) 查看obj是不是cls的instance
    issubclass(subcls,supcls) 查看subcls是不是supcls的子类

    ################## 类型转换 ##################

    chr(i) 把一个ASCII数值,变成字符
    ord(i) 把一个字符或者unicode字符,变成ASCII数值
    oct(x) 把整数x变成八进制表示的字符串
    hex(x) 把整数x变成十六进制表示的字符串
    str(obj) 得到obj的字符串描述
    list(seq) 把一个sequence转换成一个list
    tuple(seq) 把一个sequence转换成一个tuple
    dict(),dict(list) 转换成一个dictionary
    int(x) 转换成一个integer
    long(x) 转换成一个long interger
    float(x) 转换成一个浮点数
    complex(x) 转换成复数
    max(...) 求最大值
    min(...) 求最小值

    Ⅳ Python 使用对象模型来存储数据

    Python使用对象模型来存储数据。构造任何类型的值都是一个对象。尽管Python通常被当成一种“面向对象的编程语言”,但你完全能够写出不使用任何类和实例的实用脚本。不过Python的对象语法和架构鼓励我们使用这些特性,下面让我们仔细研究一下Python对象。所有的Python对像都拥有三个特性:身份,类型和值。
    身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份可以使用内建函数id()来得到。这个值可以被认为是该对象的内存地址。你极少会用到这个值,也不用太关心它究竟是什么。
    类型对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则。你可以用内建函数type0查看Python对象的类型。因为在Python中类型也是对象(还记得我们提到Python是面向对象的这句话吗?),所以type0返回的是对象而不是简单的字符串。
    值:对象表示的数据项。
    上面三个特性在对象创建的时候就被赋值,除了值之外,其他两个特性都是只读的。对于新式类型和类,对象的类型也是可以改变的,不过并不推荐初学者这样做。如果对象支持更新操作,那么它的值就可以改变,否则它的值也是只读的。对象的值是否可以更改被称为对象的可改变性(mutability),我们会在后面的4.7小节中讨论这个问题。只要一个对象还没有被销毁,这些特性就一直存在。Python有一系列的基本(内建)数据类型,必要时也可以创建自定义类型来满足你对应用程序的需求。绝大多数应用程序通常使用标准类型,对特定的数据存储则通过创建和实例化类来实现。

    Ⅵ python中类对象和方法的区别是什么

    python使用对象模型来存储数据,也就是说构造任何类型的值都是一个对象。所有的python对象都拥有三个特性:身份id,类型和值。
    身份id:唯一的身份标识,可以使用内建函数id()来得到,这个值可以被认为是该对象的内存地址。
    类型:对象的类型决定了该对象可以保存什么类型的值,可以进行什么样的操作,以及遵循什么样的规则,可以用内建函数type()查看
    python对象的类型,也可以用isinstance(),在python中类型也是对象。
    值:对象表示的数据项。布尔逻辑运算符包括and、or、not,对象值的比较除了一些常见的运算符(< > <= >= == !=)之外,还可以
    使用cmp()内建函数,如果是用户自定义对象,cmp()对调用该类的特殊方法__cmp__()。对于字符串来说,内建函数str(obj)返回对象适
    合可读性好的字符串表示,而另一个内建函数repr(obj)返回一个对象的字符串表示,通常情况下obj == eval(repr(obj))这个等式是成立
    的。可以这么说,repr()的输出对python比较友好,str()的输出对人比较友好。方法是在类中定义的函数。
    更多技术请关注Python视频教程。

    Ⅶ Python怎么让编译器推断出参数类型

    当然可以,如果你用pycharm的话,就在敲出OBJ之前加一行
    assert isinstance(obj, 你定义的类名)

    之后你输入obj.就出来类方法啥的了

    Ⅷ python定义模型

    学python的人都知道,python中一切皆是对象,如class生成的对象是对象,class本身也是对象,int是对象,str是对象,dict是对象...。所以,我很好奇,python是怎样实现这些对象的?带着这份好奇,我决定去看看python的源码,毕竟源码才是满足自己好奇心最直接的方法。

    在object.h文件中,定义了两种数据结构PyObject和PyVarObject,代码如下:

    1 #define PyObject_HEAD 2 Py_ssize_t ob_refcnt; 3 struct _typeobject *ob_type; 4 5 #define PyObject_VAR_HEAD 6 PyObject_HEAD 7 Py_ssize_t ob_size; 8 9 typedef struct _object {10 PyObject_HEAD11 } PyObject;12 13 typedef struct {14 PyObject_VAR_HEAD15 } PyVarObject;

    这两种数据结构分别对应python的两种对象:固定长度对象和可变长度对象。python中的所有对象都属于这两种对象中的一种,如int,float是固定长度对象,list,str,dict是可变长度对象。从上面两种对象数据结构定义来看,可变长度对象和固定长度对象的头都是PyObject结构体,也就是说python中所有对象的开头都包含这个结构体,并且可以用PyObject *指针来访问任何对象,这种访问对象的方法在python的源码中随处可见。PyObject结构体包含两个成员,ob_refcnt和ob_type指针。ob_refcnt用来表示对象被引用的次数,当ob_refcnt == 0时,这个对象会被立即销毁;ob_type指针指向了一个_typeobject类型的结构体,表示对象所属的类型,也就是生成该对象的类型,这其实很类似于面向对象中类与实例的关系,PyObject是某个类的实例,ob_type表示这个类。但与面向对象不同的是,ob_type本身也是个对象,我们来看下_typeobject的定义:

    1 typedef struct _typeobject { 2 PyObject_VAR_HEAD 3 const char *tp_name; /*类型名 */ 4 Py_ssize_t tp_basicsize, tp_itemsize; /* 实例化对象的大小 */ 5 6 /* 标准方法 */ 7 8 destructor tp_dealloc; 9 printfunc tp_print;10 getattrfunc tp_getattr;11 setattrfunc tp_setattr;12 cmpfunc tp_compare;13 reprfunc tp_repr;14 15 /* 标准类(数值类,列表类,dict类)方法*/16 17 PyNumberMethods *tp_as_number;18 PySequenceMethods *tp_as_sequence;19 PyMappingMethods *tp_as_mapping;20 21 /* 其它标准方法*/22 23 hashfunc tp_hash;24 ternaryfunc tp_call;25 reprfunc tp_str;26 getattrofunc tp_getattro;27 setattrofunc tp_setattro;28 ...
    29 } PyTypeObject;

    从上面定义来看,_typeobject的开头也包含了PyObject结构体,所以它也是一个对象,既然它也是一个对象,那么按照面向对象的理解,它又是谁来生成的呢?答案是所有PyTypeObject对象都是通过PyType_Type来生成的,包括PyType_Type本身,因为PyType_Type也是PyTypeObject对象,有点绕。PyType_Type的定义是通过将PyType_Type声明为全局静态变量实现的,具体如下:

    1 PyTypeObject PyType_Type = { 2 PyVarObject_HEAD_INIT(&PyType_Type, 0) 3 "type", /* tp_name */ 4 sizeof(PyHeapTypeObject), /* tp_basicsize */ 5 sizeof(PyMemberDef), /* tp_itemsize */ 6 (destructor)type_dealloc, /* tp_dealloc */ 7 0, /* tp_print */ 8 0, /* tp_getattr */ 9 0, /* tp_setattr */10 0, /* tp_compare */11 (reprfunc)type_repr, /* tp_repr */12 0, /* tp_as_number */13 0, /* tp_as_sequence */14 0, /* tp_as_mapping */15 (hashfunc)_Py_HashPointer, /* tp_hash */16 (ternaryfunc)type_call, /* tp_call */17 0, /* tp_str */18 (getattrofunc)type_getattro, /* tp_getattro */19 (setattrofunc)type_setattro, /* tp_setattro */20 0, /* tp_as_buffer */21 ...22 }

    从PyType_Type定义来看,ob_type被初始化为它自己的地址,所以PyType_Type的类型就是自己。从python源码实现来看,所有PyTypeObject的ob_type都会指向PyType_Type对象,所以PyType_Type是所有类型的类型,称之为元类。python中定义了很多内建的类型对象,如PyInt_Type (int类型),PyStr_Type (str类型),PyDict_Type(dict类型) 类型对象,下面看下PyInt_Type类型的定义:

    1 PyTypeObject PyInt_Type = { 2 PyVarObject_HEAD_INIT(&PyType_Type, 0) 3 "int", 4 sizeof(PyIntObject), 5 0, 6 (destructor)int_dealloc, /* tp_dealloc */ 7 (printfunc)int_print, /* tp_print */ 8 0, /* tp_getattr */ 9 0, /* tp_setattr */10 (cmpfunc)int_compare, /* tp_compare */11 (reprfunc)int_to_decimal_string, /* tp_repr */12 &int_as_number, /* tp_as_number */13 0, /* tp_as_sequence */14 0, /* tp_as_mapping */15 (hashfunc)int_hash, /* tp_hash */16 0, /* tp_call */17 ...18 };

    从PyInt_Type定义来看,它主要包含了int数据类型相关的方法。PyInt_Type类型对象的初始化和PyType_Type类型类似,PyInt_Type类型的定义也是通过全局静态变量的方式实现的,除了PyInt_Type了下,所有python内建类型都是以这种方式定义的。这些类型产生的对象都会共享这些类型对象,包括这些类型定义的方法。

    在python中,怎样查看对象的类型呢?有两种方法,一种是直接type:

    1 >>> x = 12 >>> type(x)3 <type 'int'>

    另一种是通过对象的__class__属性:

    1 >>> x = 12 >>> type(x)3 <type 'int'>4 >>> x.__class__5 <type 'int'>

    现在来看看int,str,dict这些类型的类型:1 <type 'int'>2 >>> type(int)3 <type 'type'>4 >>> type(str)5 <type 'type'>6 >>> type(dict)7 <type 'type'>8 >>> type(type)9 <type 'type'>从这个输出来看,int,str,dict这些类型的类型都是type,这也印证了前面说的,所有类型都是通过元类type生成的。

    Ⅸ 如何用python遍历一个 object数组

    本教程从一个基本面说明了远程控制技术的编程环节,可能大家比较感兴趣的是查看install.cpp里面的InstallService()方法,首先遍历HKEY_LOCAL_MACHINE\\

    Ⅹ python 如何查看object有哪些属性值

    dir([obj]):
    调用这个方法将返回包含obj大多数属性名的列表(会有一些特殊的属性不包含在内)。obj的默认值是当前的模块对象。
    hasattr(obj, attr):
    这个方法用于检查obj是否有一个名为attr的值的属性,返回一个布尔值。
    getattr(obj, attr):
    调用这个方法将返回obj中名为attr值的属性的值,例如如果attr为’bar’,则返回obj.bar。
    setattr(obj, attr, val):
    调用这个方法将给obj的名为attr的值的属性赋值为val。例如如果attr为’bar’,则相当于obj.bar = val。

    阅读全文

    与python查看obj模型相关的资料

    热点内容
    erp是什么服务器 浏览:182
    python中tmp 浏览:19
    说明wpf加密过程 浏览:142
    java读取list 浏览:702
    iis7gzip压缩 浏览:39
    有什么安卓机打吃鸡好 浏览:597
    三星u盘加密狗 浏览:473
    php函数的返回值吗 浏览:586
    国企稳定程序员 浏览:328
    编程猫如何使用教程视频 浏览:218
    安卓远端网页如何打日志 浏览:218
    压缩flash大小 浏览:993
    解压的玩具教程可爱版 浏览:366
    哪个求职app比较靠谱 浏览:888
    java的读法 浏览:60
    nod32局域网服务器地址 浏览:1003
    数码科技解压 浏览:236
    新网的云服务器管理界面复杂吗 浏览:367
    无人声解压强迫症视频 浏览:573
    计算机编译运行 浏览:640