对象的__dict__属性

#-*-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__
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值