Python学习笔记八

面向对象(object)编程

对象是指现实中的物体或实体
面向对象:把一切看成对象(实例),让对象和对象之间建立关联关系
对象的特征:对象有很多的属性(名词: 姓名,性别,年龄);
对象有很多行为(动词: 学习,吃饭,睡觉,看书)

类是拥有相同属性和行为的对象分为一组,即为一个类,类是用来描述对象的工具,用类可以创建同类对象。
车(类)-----------> BYD E6(京A.88888) 实例
车(类)-----------> BMW X5(京A.00000) 实例

狗(类)----------->小京巴(户籍号:000001)
----------->导盲犬(户籍号:000002)
int(类)----------->100(对象/实例)
----------->200(对象/实例)
类的创建语句:
语法:class 类名(继承列表):
‘’‘类的文档字符串’’’
实例方法定义(类内的函数称为方法method)
类变量定义
类方法定义
静态方法定义
作用:创建一个类
用于描述词类对象的行为和属性
类用于创建此类的一个或多个对象(实例)
示例:

# 此示例示意类的定义

class Dog:		# 定义一个类,类名为Dog
	pass

dog1 = Dog()		# 构造函数,创建Dog类的对象
print(id(dog1))		# 4378526216
dog2 = Dog()		# 创建Dog类的另一个对象
print(id(dog2))		# 4382983672

# 类似于如下语法:
int1 = int()
int2 = int()

类 对象 实例
class | object | instance

构造函数

表达式:
类名([创建传参列表])
作用:创建这个类的实例对象,并返回此实例对象的引用关系
实例(对象)说明:实例有自己的作用域和名字空间,可以为该实例添加实例变量(属性);实例可以调用类方法和实例方法;实例可以访问类变量和实例变量
示例:

class Dog:
	pass

dog1 = Dog()

实例方法:
语法:
class 类名(继承列表):
def 实例方法名(self, 参数1, 参数2, …):
‘’‘实例方法的文档字符串’’’
语句块
作用:用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为
说明:实例方法实质是函数,是定义在类内的函数;
实例方法至少有一个形参,第一个形参代表调用这个方法的实例, 一般命名为’self’
实例方法的调用语法:
实例.实例方法名(调用参数)

类名.实例方法名(实例,调用传参)
示例:

# 此实例示意如何用实例方法(method)来描述Dog类的行为
class Dog:
	def eat(self, food):
		'''此方法用来描述小狗吃东西的行为'''
		print("小狗正在吃:", food)

	def sleep(self, hour):
		print("小狗睡了", hour, "小时")

# 创建一个Dog类的实例:
dog1 = Dog()
dog1.eat("狗粮")		# 小狗正在吃: 狗粮
dog1.sleep(10)		# 小狗睡了 10 小时
# dog1.play("球")		# 对象不能调用类内不存在的方法

# 创建另一个Dog对象
dog2 = Dog()
dog2.eat("骨头")
dog2.sleep(2)
# 可以用下面的方法调用方法
Dog.eat(dog2, '苹果')
属性(attribute)

属性也叫实例变量,每个实例都可以有自己的变量,此变量称为实例变量(也叫属性)
属性的使用语法:实例.属性名
赋值规则:首次为属性赋值则创建此属性;再次为属性赋值则改变属性的绑定关系
作用:用来记录对象自身的数据
实例:


# 此示例示意为对象添加属性

class Dog:
	pass

# 创建第一个对象
dog1 = Dog()
dog1.kinds = '京巴'		# 添加属性kinds
dog1.color = '白色'		# 添加属性color
dog1.color = '黄色'
print(dog1.color, '的', dog1.kinds)			# 访问属性

dog2 = Dog()
dog2.kinds = '牧羊犬'
dog2.color = '灰色'

实例方法和实例变量(属性)结合在一起使用:
示例:

class Dog:
	def eat(self, food):
		print(self.color, '的', self.kinds, '正在吃', food)

# 创建第一个对象
dog1 = Dog()
dog1.kinds = '京巴'		# 添加属性kinds
dog1.color = '白色'		# 添加属性color
dog1.color = '黄色'
#print(dog1.color, '的', dog1.kinds)			# 访问属性
dog1.eat('骨头')

dog2 = Dog()
dog2.kinds = '牧羊犬'
dog2.color = '灰色'
dog2.eat('包子')
class Student:
	def set_info(self, name, age=0):
		'''此方法用来给学生对象添加姓名和年龄属性'''
		self.name = name
		self.age = age
		return self.name, self.age

	def show_info(self):
		'''此处显示学生的信息'''
		print(self.name, '今年', self.age, '岁')

s1 = Student()
s1.set_info('xiaomaomao', 1)

s2 = Student()
s2.set_info('xiaoxiaomao', 1)

s1.show_info()
s2.show_info()
删除属性

用del语句可以删除一个对象的实例变量
语法:del 对象.实例变量名
示例:

class Cat:
	pass

cat1 = Cat()		# 创建对象
c1.color = '白色'		# 添加属性
print(c1.color)
del c1.color		# 删除属性
print(c1.color)		# 属性错误
初始化方法

作用:对新创建的对象添加实例变量(属性)或相应的资源
语法格式:class 类名(继承列表):
def init(self [, 形参列表])
语句块
说明:(1) 初始化方法名必须__init__不可改变;
(2) 初始化方法会在构造函数创建实例后自动调用,且实例自身通过第一个参数self传入__init__方法;
(3) 构造函数的实参将通过__init__方法的形参列表传入__init__方法中;
(4) 初始化方法内部如果需要返回则只能返回None
示例:

# 此示例示意__init__方法的自动调用及添加示例变量

class Car:
	def __init__(self, c, b, m):
		self.color = c 	# 颜色
		self.band = b   # 品牌
		self.model = m 	# 型号

	def run(self, speed):
		print(self.color, '的', self.band, self.model,
		 '正在以', speed, '公里/小时的速度行驶')

	def set_color(self, clr):
		'''此方法用来修改车的颜色信息'''
		self.color = clr


a4 = Car('红色', '奥迪', 'A4')	
a4.run(179)				# # 红色 的 奥迪 A4 正在以 179 公里/小时的速度行驶
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值