【无标题】

python基础学习笔记 2023/2/6

主要学习了初步的面向对象。面向对象编程是从大的角度来看问题,将任务拆解。面向过程是按照解决问题的步骤思考,第一步到最后一步。面向对象和面向过程是不可分割的,设计解决问题的总体规划用的是面向对象的思想,在具体落实时用的是面向过程的思想。

如果对象是饼干,那么类就是制作这个饼干的模具。

类是抽象的,也称为“对象的模板”,必须通过这个模板,创建类的实例对象,才能使用这个类所定义的功能。

一个python对象包含如下部分:

  1. id
  2. type
  3. vaule
    (1) 属性
    (2) 方法
class Student:
	def __init__(self,name,score): #构造方法第一个参数必须为 self
		self.name = name #实例属性
		self.score = score
	def say_score(self): #实例方法
		print(self.name,'的分数是:',self.score)
s1 = Student('张三',80) #s1 是实例对象,自动调用__init__()方法
s1.say_score()		

实例包括:实例属性,实例方法
类本身也包括:类属性,类方法

s1是实例化对象

在这里插入图片描述
上图可以看出,类的实例化对象的属性是单独存储的,而实例化对象的方法是存储在类本身的。

类本身也是对象,这个对象的类型是type
类也有自身的属性和方法。
类方法通过@classmethod来定义,如

class Student:
	company = 'abc' #类属性
	@classmethod   
	def printCompany(cls):  #定义类方法
		print(cls.company)
Student.printCompany()  #调用类方法
	

实例化对象的内存分析,如下列过程:

class Student:
	company = "尚学堂" #类属性
	count = 0 #类属性
	def __init__(self,name,score):
		self.name = name #实例属性
		self.score = score
		Student.count = Student.count+1
	def say_score(self): #实例方法
		print("我的公司是:",Student.company)
		print(self.name,'的分数是:',self.score)
s1 = Student('高淇',80) #s1 是实例对象,自动调用__init__()方法
s1.say_score()
print('一共创建{0}个 Student 对象'.format(Student.count))

在这里插入图片描述
首先,类的属性(company和count)存储在Student类对象中,同时,还存储了实例方法say_score。实例化对象s1存在另外一个内存空间中,里面包含了实例化对象的属性。同时,把这个对象的地址赋值给了s1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值