您的位置:首页 > 编程语言 > Python开发

对象的__dict__属性

2016-01-23 23:33 459 查看
#-*-coding:utf-8-*-
'''
Created on 2016年1月23日

@author: Zroad
'''

class Person(object):

def __init__(self,sex,age):
self.sex = sex
self.age = age

def set_height(self,height):
self.height = height

def get_height(self):
return self.height

class Animal(object):

__slots__ = ('name','age')

def __init__(self,name,age):
self.name = name
self.age = age

p = Person('男', '20')
p.set_height(165)

a = Animal('horse',1)

"""
__dict__:
1、记录对象属性名、属性值的字典,本例中输出:(相当于java中的成员变量)
{'age': '20', 'height': 165, 'sex': '\xc4\xd0'}

2、不是所有的对象都有__dict__属性:设置__slots__属性的对象没有,一些内置的对象没有
3、内置的dir(object)可以输出对象所有属性,包括设置了__slots属性的

"""
print p.__dict__

"""
dir函数返回对象所有的属性,包括内置的、自定义的,返回值为列表,只是列出属性名称、方法名称等
"""
print dir(p)

"""
运行报错:
AttributeError: 'Animal' object has no attribute '__dict__'
"""
#print a.__dict__
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python dict