关于python中面向对象思想中的一个小问题

例1
class A():
books=[‘三国’,‘西游记’]
def init(self,name):
self.name=name
x=A(‘张三’)
y=A(‘李四’)
x.books[0]=‘水浒’
print(y.books)
print(A.books)
在这里插入图片描述
类变量是可修改类型的,当x.books[0]=‘水浒’,类变量发生变化,但是变量a,b指向的类变量地址没有改变所以两个不同的对象都输出一样的结果

例2

class A():
books=[‘三国’,‘西游记’]
def init(self,name):
self.name=name
x=A(‘张三’)
y=A(‘李四’)
x.books[0]=‘水浒’
print(y.books)
print(A.books)
x.books=[‘红楼梦’,‘大秦帝国’]
print(x.books)
print(y.books)
print(A.books)
在这里插入图片描述
此处,x.books=[‘红楼梦’,‘大秦帝国’],类变量已经被重新赋值,即成了内部变量,指向了新的内存地址,所以对象a指向了[‘红楼梦’,‘大秦帝国’],但是y,A依旧指向的是旧的类变量,所以还是[‘三国’,‘西游记’]

为了方便理解,再次附上老师的图
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面向对象思想是一种编程范式,它将程序的数据和操作封装到对象,通过对象之间的交互来实现程序的功能。Python是一门面向对象的编程语言,因此它支持面向对象编程的特性。 在Python,一切皆为对象。对象是类的实例,类是对象的抽象描述。面向对象编程的核心思想是将问题抽象为类,通过创建类的实例来解决问题面向对象编程的特点包括封装、继承和多态。封装是指将数据和操作封装在类,通过对外提供接口来访问和操作数据。继承是指通过定义一个新的类来继承已有类的属性和方法,从而实现代码的复用。多态是指同一类对象在不同情况下表现出不同的行为。 在Python,定义一个类使用关键字class,类可以定义属性和方法。属性是类的数据成员,方法是类的函数成员。通过创建类的实例对象,可以访问和操作类定义的属性和方法。 例如,下面是一个简单的Python类的例子: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def say_hello(self): print("Hello, my name is", self.name) print("I am", self.age, "years old.") # 创建Person类的实例对象 person = Person("Alice", 25) # 访问对象的属性 print(person.name) # 输出:Alice # 调用对象的方法 person.say_hello() # 输出:Hello, my name is Alice # I am 25 years old. ``` 在上面的例子,Person类表示一个人,它有两个属性name和age,以及一个方法say_hello用来打招呼。通过创建Person类的实例person,我们可以访问和操作实例的属性和方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值