python 类和对象 一 setattr() delattr() getattr() hasattr() 函数的区别

主宰稳场 提交于 2019-12-26 20:14:55

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

# # 什么是类?类是具有相同属性和行为方法的事物的抽象的集合
## 类的例子:人类,鱼类,猴子类
# 类的作用:创建对象,一般会在类中定义一些属性和函数,当使用类创建对象的时候,该对象就会拥有类中定于的这些属性和函数
# 类中一些属性和函数,是由所有的对象身上共同的属性和行为抽离出来的
# 对象的作用:实现函数和属性的调用执行的

class People(object):
    # pass 保证语法完整性
    # pass
    # 人出生的时候,已经具有的性别、年龄、身高、体重
    # 初始化函数,在创建对象的时候自动调用
    # __init__ 内置函数
    def __init__(self, name, age, phone):
        # 在这个函数中需要将创建对象时就应该拥有的一些属性赋值
        # 对象.属性名 = 属性值
        self.name = name
        self.age = age
        self.phone = phone

# 使用People类创建一个对象
# 创建对象的基本格式:对象名 = 类名()
# 当创建一个对象时,会在内存中开辟一块空间,来存放这个对象,这个对象是有一个地址的
# 每次创建的对象都是一个单独个体,他们的内存地址都是不一样的
1,添加新的属性
# 对象.属性名 = 属性值
# 添加新的属性名,或者是修改原有属性值
# 创建对象
创建对象 =  类名()

1 setattr(self,) 添加属性, 

delattr() 删除属性

hasattr(object,name )函数,判断是不是拥有该属性,如果有返回True,没有,返回False

getattr(object,name)函数,

# 使用getattr(obejct, name, default)函数,会把获取到的属性值返回
# object 要获取属性的对象  name 要获取的属性名 default 当属性不存在,赋一个默认值
# 如果属性不存在,可以给一个默认值,不会让程序出现异常

 

# setattr 动态添加或者修改属性
attr_dict = {'iq': '150', 'eq': '150', 'color': 'yellow'}
t = (1,2,3)
t = 1,2
print(attr_dict.items())
# for循环遍历字典
#items,获得字典的键值对
for key,value in attr_dict.items():
    # key是属性名 value是属性值
    # setattr,可以将一个字符串的属性名 添加到对象的属性中
    # p1.key = value 这种方式无法添加 相当于写了 p1.'iq' = '150'
    setattr(p1, key, value)

print(p1.iq)

# delattr 动态删除属性
# 删除对象p1中的属性
attr_list = ['iq','eq','color']
for attr in attr_list:
    # 可以使用delattr函数删除
    delattr(p1, attr)
# 对象的属性删除之后,不可使用
# print(p1.iq)
class People(object):
    total = 0
    def __init__(self,name):
        self.name = name
p1 = People('张总')
p2 = People('张我')
s = hasattr(p1,'sex')
print(s)
s = hasattr(p1,'name')
print(s)
m = getattr(p1,'sex',0)
print(m)
m = getattr(p1,'name',0)
print(m)

#False
True
0
张总

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!