Python的类与面向对象

Python 类与对象

1、基本概念

面向对象:是一种抽象,是一种用分类的方式看待问题的方法,用 Java 的编程思想来说就是:万物皆对象;面向对象有三大特性:封装、继承、多态。

类:一个分类就是一个类

对象:对象是根据类创建出来的一个个实例

2、基本使用

2、1类的定义
# 类的定义
class Car :
    pass 
2、2对象的创建
# 创建 Car 的实例对象 c
class Car :
    pass
c = Car()
2、3类中定义属性
# 定义 Car 类的属性 name
class Car :
    name = ‘BMW’

3、类中的方法

在这里插入图片描述

3、1类方法

只能访问类变量,不能访问实例变量

1、类方法通过@classmethod装饰器实现,只能访问类变量,不能访问实例变量;
2、通过cls参数传递当前类对象,不需要实例化。

class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    @classmethod
    def run(cls,speed):
        print(cls.name,speed,'行驶')
# 访问方式1
c = Car("宝马")
c.run("100迈")
# 访问方式2
Car.run("100迈")

输出结果:
BMW 100迈 行驶
BMW 100迈 行驶
3、2静态方法

静态方法是类中的函数,不需要实例

1、用 @staticmethod 装饰的不带 self 参数的方法;
2、静态方法名义上归类管理,实际中在静态方法中无法访问类和实例中的任何属性;
3、调用时并不需要传递类或实例

class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    @staticmethod
    def run(speed):
        print(Car.name,speed,'行驶')

# 访问方式1
c = Car ("宝马")
c.run("100迈")
# 访问方式2
Car.run("100迈")

输出结果:
BMW 100迈 行驶
BMW 100迈 行驶
3、3实例方法

实例方法就是类的实例能够使用的方法

# 第一个参数强制为实例对象 self
class Car(object):
    name = 'BMW'
    def __init__(self, name):
        self.name = name
    def run(self,speed):
        print(self.name,speed,'行驶')

# 访问
c = Car("宝马")
c.run("100迈")

输出结果:
宝马 100迈 行驶

4、类的继承

# 父类
class Car(object):
	name = "BMW"
	def __init__(self,name):
		self.name = name
	def run(self,speed):
		print(self.name,speed,"行驶")

# 子类
class BMWCar(Car):
	conf = "经济适用型"
	pass

# 调用父类 Car 中 run 方法
bc = BMWCar("BMW经济适用型轿车")
bc.run("100迈")

5、类的多态

# 父类
class Car(object):
	name = "BMW"
	def __init__(self,name):
		self.name = name
	def run(self,speed):
		print('Car-->',self.name,speed,'行驶')
	
# 子类1
class BMWCar(Car):
	def run(self,speed):
		print('BMWCar-->',self.name,speed,'行驶')

# 子类2
class SVWCar(Car):
	def run(self,speed):
    	print('SVWCar-->',self.name,speed,'行驶')

# 调用 run 方法
c = Car('Car')
c.run('120迈')

bc = BMWCar('宝马')
bc.run('100迈')

sc = SVMCar('大众')
sc.run('80迈')

# 输出结果
Car--> Car 120迈 行驶
BMWCar--> 宝马 100迈 行驶
SVWCar--> 大众 80迈 行驶
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值