美文网首页
面向对象基础——对象的属性及其增删查改

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

作者: 她即我命 | 来源:发表于2018-07-31 19:21 被阅读67次

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

相关文章

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

    1.对象的属性 对象的属性class 类名:def init(self):self.属性名 = 初值self.属性...

  • 对象属性的增删改查

    python中对象的属性支持增删改查 属性的增删改查 1.查(获取对象属性) 对象.属性 - 获取指定对象指定属...

  • Python面向对象编程

    类相关知识 对象相关知识 类属性增删改查 实例属性增删改查 对象与实例属性 静态属性 类方法 静态方法 组合 继承...

  • Day12 面向对象基础

    01.迭代器和生成器 02.认识面向对象 03.类的声明 04.对象的属性 05.对象属性的增删改查 06.slo...

  • JS补充15

    对象 属性的增,删,改,查 增:对象.属性=“方法”; 删:delete.对象.原有属性; 查...

  • python面向对象编程(2)|属性和实例化方法

    上次我们定义了人类并实例化出张三这个对象,今天我们就来谈谈面向对象中的属性和实例化方法。 属性的增删改查 下图是我...

  • python-16-面向对象基础2

    一、属性的增删改查 1.查(获取对象属性的值)方法1:对象.属性 --> 获取指定属性值,属性不存在会报错 方...

  • DAY2

    面向对象tab栏,完成增删改查HTML代码: JS代码:

  • JavaScript防篡改对象

    preventExtensions:不能增,能删改seal:不能增删,能改freeze:不能增删改 对象属性增删改...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

网友评论

      本文标题:面向对象基础——对象的属性及其增删查改

      本文链接:https://www.haomeiwen.com/subject/hatkvftx.html