1.对象的属性
对象的属性
class 类名:
def init(self):
self.属性名 = 初值
self.属性名2 = 初值2
class Person:
# __init__方法是系统自带的一个方法,这个方法不可以字节调用。通过类创建对象的时候系统会自动调用这个方法
# init方法的作用是对这个对象的属性进行初始化
# 通过构造方法创建对象的时候,一定要保证。init方法中除了self以外,其他的每一个参数都必须有值
def __init__(self, name1='', age1=0,sex1='男'):
# 在这个地方声明对象的属性
print('=====')
print(name1)
# 在init中声明对象的属性
"""
name,age和sex就是Person这个类的对象属性,类的对象属性,需要通过对象来调用
"""
self.name = name1
self.age = age1
self.sex = sex1
if __name__ == '__main__':
# 注意:构造方法中的参数实质是传给init方法的参数的
p1= Person('chenpeng',23)
print(p1.name,p1.age,p1.sex)
p2 = Person('骆老师',30)
print(p2.name,p2.age,p2.sex)
"""通过不同的方式创建对象"""
# 创建对象的时候不给属性赋值
p3 = Person()
p4 = Person('王海飞')
p5 = Person(sex1='男')
p6 = Person(age1=22)
2.对象属性的增删查改
class Dog:
def __init__(self, age=0,color='dark'):
self.age = age
self.color = color
if __name__ == '__main__':
dog1 = Dog(3,'red')
# 1.查看属性
"""
方法一: 对象.属性 (如果属性不存在会报错)
方法二: 对象.__getattribute__('属性名')和getattr(对象,'属性名',默认值)
"""
print(dog1.age, dog1.color)
print(dog1.__getattribute__('age'))
print(getattr(dog1,'age'))
#如果设置了default的值,那么当属性不存在的时候不会报错,并且返回默认值
print(getattr(dog1, 'age','无名狗'))
# 2.修改属性的值
"""
方法一:对象.属性 = 新值
方法二:对象.__setattr__('属性名','新值')和setattr(dog1,'属性名','值')
"""
dog1.age = 4
print(dog1.age)
dog1.__setattr__('color','black')
print(dog1.color)
setattr(dog1,'color','blue')
print(dog1.color)
# 3.增加属性
"""
方法一:对象.属性 = 值(属性不存在)
属性是添加给对象的,不是给类的
方法二:对象.__setattr__('属性名','新值')和setattr(dog1,'属性名','值')
"""
dog1.name = '大黄'
print(dog1.name)
dog1.__setattr__('type','哈士奇')
print(dog1.type)
setattr(dog1,'sex','boy')
print(dog1.sex)
# 4.删除对象属性
"""
方法一:del 对象.属性
删除属性也是删除对象的属性。不会影响其他这个类的其他对象的属性
方法二:
"""
# del dog1.age
# print(dog1.age) # AttributeError: 'Dog' object has no attribute 'age'
# dog1.__delattr__(dog1,'color')
# print(dog1.color)
# delattr(dog1,'age')
# print(dog1.age)
练习:声明一个学生类,拥有属性:姓名,年龄,性别。方法:学习
1.声明学生类的对象,生命的时候就给姓名,性别和年龄赋值
2,。通过三种方法分别获取姓名,年龄和性别
3.给学生添加一个属性,电话
4.修改学生的年龄
5.删除学生的的性别
class Student():
def __init__(self,name='chenpeng', age=18, sex='男'):
self.name = name
self.age = age
self.sex = sex
def xuexi(self):
print('%s在学习'%self.name)
student1 = Student()
print(student1.name,student1.age,student1.sex)
print(student1.__getattribute__('name'))
print(getattr(student1,'name'))
student1.tel = '15117622847'
student1.age = 22
del student1.sex
网友评论