PYTHON 基础从零开始函数 类与对象(1)

本章内容

定义类,属性和方法
创建并使用对象
实例方法与自动绑定的self
类与未绑定的方法
类方法与静态方法
@符号及函数装饰器
类变量与实例变量的差别
使用property定义属性
使用特殊成员名实现封装
python的继承
多继承的语法
重写父类的方法
使用未绑定方法调用被重写方法
使用super函数调用父类构造方法
python多态的意义及灵活性
类型检查的相关函数及属性
枚举类的用法
枚举类及其构造器

定义类
在面向对象的程序设计中有2重要概念:类(class)与对象(object),也被称为实例,其中类是某一批对象的抽象,可以把类理解成某种概念:对象才是一个具体存在的实体。语法如下:
class 类名:
	执行语句
	零个到多个类变量。。。
	零个到多个方法。。。
	

python类所包含的最重要的2个成员就是变量及方法,其中类变量属于类本身,用于定义该类本身所包含的状态数据;而实例变量则属于该类的对象,用于定义对象包含的状态数据;方法则用于定义该类的对象的行为或功能实现。
python是一门动态语言,类变量及对象变量都可以增加减少。在类中定义的方法默认是实例方法,定义实例方法的方法与定义函数的方法基本相同,只是实例方法的第一个参数会被绑定到方法的调用者,因此实例方法至少应该定义一个参数,该参数通常会被命名为self。
在实例中有一个特别的方法,init,这个方法被称为构造方法,构造方法用于构造该类的对象,通过调用构造方法返回该类的对象。

class Person :
	'这是学习python定义的一个Person类'
	#下面定义了一个类变量
	hair = 'black'
	def __init__(self,name = 'Charlie',age = 18):
		#下面为对象增加2给实例变量
		self.name = name
		self.age = age
		#下面定义一个say方法
		def say(self,content):
			print(content)

python的类大致有如下作用。
创建对象。
派送子类

对象的产生与使用

创建对象的根本途径是构造方法,调用某个类的构造方法即可创建这个类的对象,python无须使用new调用构造对象。
#调用person类的构造方法,返回一个person对象
#将该person对象赋值给p变量
p = Person()
创建完对象,接下去是使用对象,python的对象大致有如下作用。
操作对象的实例变量
操作对象的方法

#输出p的name,age实例变量
print(p.name,p.age)
访问p的name实例变量,直接为该实例变量赋值。
p.name = '李刚'
#调用p的say()方法,在声明say()方法是定义了2个行参
但是第一个形参是自动绑定的,因此自需要为第二个形参指定一个值
p.say('python语言很简单,学习很容易!')
self.name = name
self.age = age

最后2行代码用传入的name,age参数(这2个参数都有默认值)对self的name,age变量赋值。由于python的第一个self参数是自动绑定的(在构造方法中自动绑定到该构造方法初始化的对象),而这2行代码就是对self的name,age2个变量的赋值,也就是对该构造初始化的对象的name,age变量赋值,即为p对象增加了name,age 2个实例变量。

实例方法和自动绑定self

对于在类体中定义的实例方法,python会自动绑定方法的第一个参数(通常建议为self),第一个参数总算指向调用该方法的对象。根据第一个参数出现位置的不同,第一个参数所绑定的对象略有区别。
在构造方法中引用正在初始化的对象
在普通实例中调用该方法的对象
由于实例第一个self参数会自动绑定,因此程序在调普通实例的时候不需要为第一个参数传值。
self参数最大的作用就是引用当前方法的调用者。

class Dog:
	定义一个jump()方法
	def Jump(self):
		print('正在执行jum方法')
		#定义一个run()方法,run()方法需要借助jump()方法
	def Run(self):
		self.jump()
		print('正在执行run方法')	 

上面代码的run()方法中的self代表该方法的调用者,谁在调用run()方法,那么self就代表谁。因此该方法表示:当一个Dog对象调用run()方法时,run()方法需要依赖它自己的jump()方法。

下节说方法 困了睡觉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值