天天看點

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)

python Class:擷取對象類型

print type(Animal)

python Class:擷取對象類型

import types #導入子產品types

print type('abc')==types.StringType #判斷'abc'是否為字元串類型

python Class:擷取對象類型

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

python Class:擷取對象類型

print type([])==types.ListType

python Class:擷取對象類型

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

python Class:擷取對象類型

二、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)

python Class:擷取對象類型

三、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 to

    x.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()

python Class:擷取對象類型

print getattr(dog, 'name')

python Class:擷取對象類型

print getattr(dog, 'run')

python Class:擷取對象類型

print getattr(dog, 'd')

python Class:擷取對象類型

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')

python Class:擷取對象類型

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 to

    x.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

python Class:擷取對象類型