python Class:获取对象类型

获取对象类型:

一、type

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Animal(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
    def run(self):
        print 'Animal is run'

class Dog(Animal):
    def run(self):
        print 'Dog is run'

print type(dog.run)

print type(Animal)

import types #导入模块types
print type('abc')==types.StringType #判断'abc'是否为字符串类型

print type(u'abc')==types.UnicodeType

print type([])==types.ListType

print type(int)==type(str)==types.TypeType   #所有的类型都是TypeType

二、isinstance类型

对于继承关系class,用isinstance最为方便。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Animal(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
    def run(self):
        print 'Animal is run'

class Dog(Animal):
    def run(self):
        print 'Dog is run'

print isinstance(dog, Dog) and isinstance(dog, Animal)

三、attr类型

  1. getattr()
  • getattr(object, name[, default])?
  • Return the value of the named attribute of object.  name must be a string.
    If the string is the name of one of the object’s attributes, the result is the
    value of that attribute.  For example, getattr(x, 'foobar') is equivalent tox.foobar.  If the named attribute does not exist, default is returned if
    provided, otherwise AttributeError is raised.

    对象的状态存在,则返回状态值,若不存在,则返回AttributeError:信息

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Animal(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
    def run(self):
        print 'Animal is run'

class Dog(Animal):
    def run(self):
        print 'Dog is run'

dog = Dog('Pity', 98)
dog.run()

print getattr(dog, 'name')

print getattr(dog, 'run')

print getattr(dog, 'd')

2.hasattr()

  • hasattr(object, name)?
  • The arguments are an object and a string.  The result is True if the string
    is the name of one of the object’s attributes, False if not. (This is
    implemented by calling getattr(object, name) and seeing whether it raises an
    exception or not.)

    参数是对象和字符串,如果字符串是对象中的,返回True,否则返回False

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

class Animal(object):
    def __init__(self, name, score):
        self.name = name
        self.score = score
    def run(self):
        print 'Animal is run'

class Dog(Animal):
    def run(self):
        print 'Dog is run'

dog = Dog('Pity', 98)

print hasattr(dog, 'color')

3.setattr()

  • setattr(object, name, value)?
  • This is the counterpart of getattr().  The arguments are an object, a
    string and an arbitrary value.  The string may name an existing attribute or a
    new attribute.  The function assigns the value to the attribute, provided the
    object allows it.  For example, setattr(x, 'foobar', 123) is equivalent tox.foobar = 123.

    设置属性变量

#!/usr/bin/env python3
     # -*- coding: utf-8 -*-

class Animal(object):
           def __init__(self, name, score):
               self.name = name
               self.score = score
          def run(self):
               print 'Animal is run'

class Dog(Animal):
         def run(self):
               print 'Dog is run'

dog = Dog('Pity', 98)

setattr(dog, 'color', '0xff00ff')
  print dog.color

原文地址:http://blog.51cto.com/13502993/2147109

时间: 2024-10-11 07:30:20

python Class:获取对象类型的相关文章

python进阶四(类的继承)【4-5 python中获取对象信息】

python中获取对象信息 拿到一个变量,除了用 isinstance() 判断它是否是某种类型的实例外,还有没有别的方法获取到更多的信息呢? 例如,已有定义: 1 class Person(object): 2 def __init__(self, name, gender): 3 self.name = name 4 self.gender = gender 5 6 class Student(Person): 7 def __init__(self, name, gender, score

获取对象类型

获取对象类型 由 王巍 (@ONEVCAT) 发布于 2015/05/27 我们一再强调,如果遵循规则的话,Swift 会是一门相当安全的语言:不会存在类型的疑惑,绝大多数的内容应该能在编译期间就唯一确定.但是不论是 Objective-C 里很多开发者早已习惯的灵活性,还是在程序世界里总是千变万化的需求,都不可能保证一尘不变.我们有时候也需要引入一定的动态特性.而其中最为基本但却是最为有用的技巧是获取任意一个实例类型. 在 Objective-C 中我们可以轻而易举地做到这件事,使用 -cla

获取对象类型(swift)

获取对象类型(swift) by 伍雪颖 let date = NSDate() let name = date.dynamicType println(name) let string = "Hello" let name1 = string.dynamicType println(name1)

flex获取对象类型 并通过类名实例化对象

问题情景描述: 平台A.B,分别对应主内容区Hgroup的子对象,对象类型相同,只是数据不同. 当A.B之间切换,Hgroup的对象需要重新创建并数据赋值. 这样便出现了 获取对象类型  并创建该类型对象实例 的需求. 问题解决方法: step1 : 根据对象获取对象类型 使用getQualifiedClassName方法,可以返回类型String step2:创建该类型对象实例 getDefinitionByName根据对象类型String,得到CLass类.然后对类进行实例化即可. 代码参考

<Python内置对象类型>

核心数字类型: 数字:int,long,float,complex,bool 字符:str,unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set),frozenset,类型,None 其他文件类工具:pipes,fifos,sockets. 类型转换: str(),repr()或format():将非字符型数据转换成字符: int():转换为整数 float():转换为浮点数 list(x):可以把字符串x转换为列表, tuple(x):将字符

python动态获取对象的属性和方法

http://blog.csdn.net/kenkywu/article/details/6822220首先通过一个例子来看一下本文中可能用到的对象和相关概念.01     #coding: UTF-802     import sys #  模块,sys指向这个模块对象03     import inspect04     def foo(): pass # 函数,foo指向这个函数对象05      06     class Cat(object): # 类,Cat指向这个类对象07    

python动态获取对象的属性和方法 (转载)

首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sys def foo():pass class Cat(object): def __init__(self, name='Kitty'): self.name = name def sayHi(self): print self.name, 'says Hi!' cat = Cat() print Cat.sayHi print cat.sayHi 有时候我们会碰到这样的需求,需要执行对象的某

python 之获取对象信息

当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <class 'int'> >>> type('str') <class 'str'> >>> type(None) <type(None) 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判

Python中的对象类型的初步介绍

一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相关的类型 二:数字 1.**是乘方 2.math数学模块 3.random模块 三:字符串 1.介绍 字符串是单个