Python 面向对象程序设计(一)

面向对象程序设计

# 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法。
#对象指的是类的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。类就是一组相似特征事物的统称。
#面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:
#传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。
#面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的"机器",即对象。

定义和使用类

# 定义类采用class语句 ,语法为class ClassName:   #建议类的名称首字母大写,如果有多个,每个词首字母大写
#                               '''类的帮助信息''' 
#                                statement             

class Geese:       #创建类
    '''大雁类'''
    pass
wildgoose = Geese()       #创建4只大雁
wildgoose1 = Geese()
wildgoose2 = Geese()
wildgoose3 = Geese()
# 创建__init__()方法 注意前后各两个下划线
class Geese:       #创建类
    '''大雁类'''
    def __init__(self): #定义构造方法
        print("大雁类")
wildgoose = Geese()     #创建大雁类的一个实例
wildgoose1 = Geese()    #再创建三个大雁类实例
wildgoose2 = Geese()
wildgoose3 = Geese()
大雁类
大雁类
大雁类
大雁类
class Geese:       #创建类
    '''大雁类'''
    def __init__(self,beak,wing,claw):    # 构造方法
        print("我是大雁类!我有以下特征:")
        print(beak)    # 输出喙的特征
        print(wing)    # 输出翅膀的特征
        print(claw)    # 输出爪子的特征
beak_1 = "喙的基部较高,长度和头部的长度几乎相等"    # 喙的特征
wing_1 = "翅膀长而尖"      # 翅膀的特征
claw_1 = "爪子是蹼状的"                # 爪子的特征
wildgoose = Geese(beak_1,wing_1,claw_1)     #创建大雁类特征一个实例
我是大雁类!我有以下特征:
喙的基部较高,长度和头部的长度几乎相等
翅膀长而尖
爪子是蹼状的
#在上面基础上,再增加一个飞行方法
class Geese:
    '''大雁类'''
    def __init__(self,beak,wing,claw):    # 构造方法
        print("我是大雁类!我有以下特征:")
        print(beak)    # 输出喙的特征
        print(wing)    # 输出翅膀的特征
        print(claw)    # 输出爪子的特征
    def fly(self,state):  # 定义飞行方法
        print(state)
     
'''**************调用方法*********************'''

beak_1 = "喙的基部较高,长度和头部的长度几乎相等"    # 喙的特征
wing_1 = "翅膀长而尖"      # 翅膀的特征
claw_1 = "爪子是蹼状的"                # 爪子的特征
wildGoose = Geese(beak_1,wing_1,claw_1)        # 创建大雁类的实例
wildGoose.fly("我飞行的时候,一会儿排成个人字,一会排成个一字")  # 调用实例方法
我是大雁类!我有以下特征:
喙的基部较高,长度和头部的长度几乎相等
翅膀长而尖
爪子是蹼状的
我飞行的时候,一会儿排成个人字,一会排成个一字
#上例中,飞行状态定义可以在函数里设置
class Geese:
    '''大雁类'''
    def __init__(self,beak,wing,claw):    # 构造方法
        print("我是大雁类!我有以下特征:")
        print(beak)    # 输出喙的特征
        print(wing)    # 输出翅膀的特征
        print(claw)    # 输出爪子的特征
    def fly(self,state = '我能飞'):  # 定义飞行方法,state此处可定义
        print(state)
     
'''**************调用方法*********************'''

beak_1 = "喙的基部较高,长度和头部的长度几乎相等"    # 喙的特征
wing_1 = "翅膀长而尖"      # 翅膀的特征
claw_1 = "爪子是蹼状的"                # 爪子的特征
wildGoose = Geese(beak_1,wing_1,claw_1)        # 创建大雁类的实例
wildGoose.fly()  # 前面函数已经定义,此处可不定义。
我是大雁类!我有以下特征:
喙的基部较高,长度和头部的长度几乎相等
翅膀长而尖
爪子是蹼状的
我能飞
# 创建数据成员并访问
class Geese:
    '''大雁类'''
    neck = "脖子较长"                       # 类属性(脖子)
    wing = "振翅频率高"                     # 类属性(翅膀)
    leg = "腿位于身份的中心支点,行走自如"  # 类属性(腿)
    def __init__(self):                     # 构造方法
        print(Geese.neck)    # 输出脖子的特征
        print(Geese.wing)    # 输出翅膀的特征
        print(Geese.leg)     # 输出腿的特征
beak_1 = "喙的基部较高,长度和头部的长度几乎相等"    # 喙的特征
wing_1 = "翅膀长而尖"      # 翅膀的特征
claw_1 = "爪子是蹼状的"                # 爪子的特征
wildGoose = Geese()        # 创建大雁类的实例
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如
class Geese:
    '''大雁类'''
    neck = "脖子较长"                       # 类属性(脖子)
    wing = "振翅频率高"                     # 类属性(翅膀)
    leg = "腿位于身份的中心支点,行走自如"  # 类属性(腿)
    number = 0                              # 编号
    def __init__(self):                     # 构造方法
        Geese.number += 1                   # 将编号加1
        print("\n我是第"+str(Geese.number)+"只大雁,我属于雁类!我有以下特征:")
        print(Geese.neck)    # 输出脖子的特征
        print(Geese.wing)    # 输出翅膀的特征
        print(Geese.leg)     # 输出腿的特征

# 创建4个雁类的对象(相当于有4只大雁)
list1 = []
for i in range(4):                         # 循环4次
     list1.append(Geese())                 # 创建一个雁类的实例
print("一共有"+str(Geese.number)+"只大雁")

# 以下代码为添加类属性的代码,删除上下的三引号即可正常运行
Geese.beak = "喙的基部较高,长度和头部的长度几乎相等"  # 添加类属性
print("第2只大雁的喙:",list1[1].beak)    # 访问类属性


我是第1只大雁,我属于雁类!我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如

我是第2只大雁,我属于雁类!我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如

我是第3只大雁,我属于雁类!我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如

我是第4只大雁,我属于雁类!我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如
一共有4只大雁
第2只大雁的喙: 喙的基部较高,长度和头部的长度几乎相等
#定义实例属性,注意例子是类属性
class Geese:
    '''大雁类'''
    def __init__(self):
        self.neck= "脖子较长"                       # 实例属性(脖子)
        self.wing = "振翅频率高"                     # 实例属性(翅膀)
        self.leg = "腿位于身份的中心支点,行走自如"  # 实例属性(腿)
        print("我属于大雁类,我有以下特征:")
        print(self.neck)   #访问实例属性
        print(self.wing)
        print(self.leg)
geese = Geese()  #实例化类的对象
我属于大雁类,我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如
#在类的对象以外使用
print(geese.leg)
腿位于身份的中心支点,行走自如
#不能通过类的名称访问
print(Geese.leg)    #报错
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-17-53b9361ae910> in <module>()
      1 #不能通过类的名称访问
----> 2 print(Geese.leg)


AttributeError: type object 'Geese' has no attribute 'leg'
geese1 = Geese()
geese1.leg = "通过腿我可以行走"
print("geese:",geese.leg)
print("geese1:",geese1.leg)
我属于大雁类,我有以下特征:
脖子较长
振翅频率高
腿位于身份的中心支点,行走自如
geese: 腿位于身份的中心支点,行走自如
geese1: 通过腿我可以行走
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈伦2019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值