对象属性

1.什么是对象属性

类中的属性分为类的字段和对象属性

a.对象属性 - 属性的值会因为对象不同而不一样,这种属性就应该声明为对象属性

声明在init方法中 - 位置
以'self.属性名 = 值'的方式来声明(这儿的属性就是对象属性) - 方式
通过'对象.属性'的方式来使用 - 使用

b.类的字段 - 属性的值不会因为对象不同而不同,这种属性就声明成类的字段

直接声明类的里面,函数的外面的变量就是类的字段
以'字段名 = 值'
通过'类.字段'的方式来使用

class Person:
    # num就是类的字段
    num = 61

    # 在init方法中声明对象属性
    def __init__(self, name='', age=0):
        self.name = name
        self.age = age

练习:创建Dog类,有属性名字、类型、年龄

要求创建Dog的对象的时候:不能给年龄赋值,可以给类型赋值也可以不用给类型赋值,必须给名字赋值

对象方法eat:打印XXX在吃什么
class Dog:
    def __init__(self, name, type='土狗'):
        self.name = name
        self.age = 0
        self.type = type

    def eat(self, food):
        # self = dog1, food = '骨头'
        # self = dog2, food = '屎'
        print('%s在吃%s' % (self.name, food))

练习: 声明矩形类,拥有属性长和宽,拥有方法求面积和求周长

class Rect:
    def __init__(self, length: float, width: float):
        self.length = length
        self.width = width

    def area(self):
        return self.length * self.width

    def perimeter(self):
        return (self.length + self.width) * 2


def main():
    # 使用类的字段
    Person.num = 100
    print(Person.num)

    r1 = Rect(100, 98)
    print(r1.area())
    print(r1.perimeter())

    p1 = Person('小明', 18)
    # 获取对象属性的值
    print(p1.name, p1.age)

    p2 = Person('小红', 20)
    # 修改对象属性的值
    p2.name = '李四'
    print(p2.name, p2.age)

    dog1 = Dog('大黄')
    dog1.eat('骨头')

    dog2 = Dog('旺财', '中华田园犬')
    print(dog2.name, dog2.age, dog2.type)
    dog2.eat('屎')

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

相关阅读更多精彩内容

友情链接更多精彩内容