【Python】Python学习(八)面向对象编程

Chapter 5 面向对象编程

面向对象编程(Object Oriented Programming),以对象作为程序的基本单元,其中对象包含了数据和操作数据的函数。
面向过程设计则将程序视作一系列命令集合,即通过函数来顺序运行,利用函数切分来降低复杂度。
面向对象设计则将程序视作一组对象的集合。对象可以接受、发送和处理信息。程序执行就是指消息在各对象的传递。
数据封装、继承和多态是面向对象的三大特点,后面会详细介绍。

5.1 类

Python中的所有数据类型都可以视为对象,而 类(Class) 就是自定义的对象数据类型。根据类来创建对象,就是 实例化(Instance)

(1)定义和使用类

1)定义类
  • 结构
class<类名>(父类名):
	def __init__(self, 参数,): # 构造函数
		...
	def 方法名1(self, 参数,): # 方法1
		...
	def 方法名2(self, 参数,): # 方法2
		...

其中类名推荐首字母大写。

class Calculator: 
    name='Good Calculator'  #class的属性
    price=18
    def add(self,x,y):
        print(self.name)
        result = x + y
        print(result)
    def minus(self,x,y):
        result=x-y
        print(result)
    def times(self,x,y):
        print(x*y)
    def divide(self,x,y):
        print(x/y)

类定义函数时,与普通函数定义不同的是,参数第一个必须是self

2)使用类

实例化方式:实例名=类名()

>>> cal=Calculator()  #运行class的时候要加"()"
>>> cal.name
'Good Calculator'
>>> cal.price
18
>>> cal.add(10,20)
Good Calculator
30
>>> cal.minus(10,20)
-10
>>> cal.times(10,20)
200
>>> cal.divide(10,20)
0.5

(2)类的属性

数据含有自身的属性。Python中类的属性分为两类:实例属性和类属性。

1)实例属性

定义格式:self.属性名实例名.属性名

class Student(object):
    def __init__(self, name):
        self.name = name

属性名是name

调用格式:实例名.属性名

>>> s = Student('Bob')
>>> s.name
'Bob'
2)类属性

定义格式:属性名= (class中直接赋值)

class Student(object):
    name = 'Bob'

调用格式:类名.类变量名

>>> print(Student.name)
Bob
3)修改属性的值
  • 给属性设定默认值。
class Calculator:
    name='good calculator'
    price=18
    def __init__(self,name,price,height=10,width=14,weight=16): #后面三个属性设置默认值,查看运行
        self.name=name
        self.price=price
        self.h=height
        self.wi=width
        self.we=weight
  • 可通过实例访问,即实例名.方法名赋值修改。
>>> c=Calculator('bad calculator',18)
>>> c.h
10
>>>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值