面向对象基础——对象的属性及其增删查改

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,131评论 2 16
  • 1/579文件IO文件介绍I/O流流的概念读写文件文件备份IO介绍大家应该听说过一句话:“好记性不如烂笔头”。不仅...
    清清子衿木子水心阅读 5,360评论 0 1
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,020评论 6 13
  • 2 没课的时候,我就挂在健身房的器械上,一副懒洋洋的模样,不想动。 阿赛过来在椭圆机上开始了他的自虐之旅,“兄弟,...
    樊雯婷阅读 1,333评论 0 2
  • 2016年10月9号 照利计算天数 距离结束这段时间大概还有15天 距离回去还有18天 嗯 加油
    钱婆婆有糖吃阅读 1,850评论 0 0

友情链接更多精彩内容