Python课程第十二天_下午_课程笔记(对象属性和类属性)

本文深入探讨Python中类和对象的属性概念,包括类属性和对象属性的区别,构造函数的作用,以及如何调用和修改这些属性。通过具体示例,展示了属性在不同情况下的行为特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Day_12_PM_Object_and_Class_properties

# 类
class Pig:
    # 类属性: 类变量
    name = '佩奇'
    likes = ['吃', '睡']

    # 构造函数/初始化函数:
    #   1.在对象创建时自动被调用
    #   2.在这个函数中可以初始化属性
    def __init__(self, name1, age1):
        # 对象属性: 成员变量
        self.name1 = name1
        self.age = age1

        # 如果出现与类属性同名的对象属性, 使用对象调用时, 会优先使用对象属性
        self.name = '超人强'

        self.likes2 = ['吃', '睡']

    def eat(self):
        print(self.name1, self.age,  '吃饭')


# 对象
p1 = Pig('佩奇', 3)
p1.eat()

p2 = Pig('乔治', 2)
p2.eat()

print('-' * 100)

# 类属性的调用
print(p1.name)  # 对象.类属性
print(Pig.name)  # 类.类属性, 推荐

# 对象属性的调用
print(p1.name1)  # 对象.对象属性
# print(Pig.name1)  # 类.对象属性, 错误, 不能调用

print('-' * 100)

# 修改对象属性
p1.name1 = '八戒'
print(p1.name1)

# 修改类属性
# Pig.name = '猪猪侠'
# print(Pig.name, p1.name)  # 佩奇 猪猪侠

# p1.name = '猪猪侠'  # 对象不能修改类属性
# print(Pig.name, p1.name)  # 佩奇 猪猪侠

print(Pig.name)  # 佩奇
print(p1.name)  #


# 类属性是所有Pig对象共享的
p1 = Pig('佩奇', 3)
p2 = Pig('乔治', 2)

print(p1.likes)  # ['吃', '睡']
print(p2.likes)  # ['吃', '睡']

p1.likes.append('游泳')

print(p1.likes)  # ['吃', '睡', '游泳']
print(p2.likes)  # ['吃', '睡', '游泳']

# 对象属性是独立的, 不会被其他对象干扰
p1 = Pig('佩奇', 3)
p2 = Pig('乔治', 2)

print(p1.likes2)  # ['吃', '睡']
print(p2.likes2)  # ['吃', '睡']
print(p1.likes == p2.likes)  # True

p1.likes2.append('游泳')

print(p1.likes2)  # ['吃', '睡', '游泳']
print(p2.likes2)  # ['吃', '睡', '游泳']
print(p1.likes2 == p2.likes2)  # False
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值