Python零基础入门36-40(类和对象)

  **#Python入门36-40**

知识点:
0. 对象 = 属性 (变量)+ 方法(函数)
在这里插入图片描述

1.OO(Object Oriented 面向对象)的特征:

  • 封装:信息隐蔽技术
  • 继承:子类自动共享父类之间数据和方法的机制
    在这里插入图片描述
  • 多态:不同对象对同一方法响应不同的行动
    在这里插入图片描述
    2.self:相当与c++的this指针
    在这里插入图片描述

3.Python的魔法方法:_init _(self, param1 , param2 …)
在这里插入图片描述
4.公有和私有

  • 公有:属性和方法都是公开的,可以通过.操作符来访问。在Python中定义私有变量只需要在变量名或函数名前加上"__"两个下划线,name这个函数或变量就会变为私有。(实际上变为了_ 类名_ _变量名)
    name mangling(名字改编,名字重整)
    在这里插入图片描述
    在这里插入图片描述
    可以通过p._person__name来访问

  • 私有:

5.继承: class DerivedClassName(父类名):
在这里插入图片描述
6.

  • 调用未绑定的父类方法
    在这里插入图片描述
  • 使用super函数
    在这里插入图片描述
    在这里插入图片描述
    7.多重继承:class DerivedClassName(父类1,父类2,父类3…):容易导致代码混乱,尽量避免使用。

8.组合:定义一个类,叫水池,水池里要有乌龟和鱼。
在这里插入图片描述
在这里插入图片描述
9.

  • 不要试图在一个类里面定义出所有能想到的属性和方法,应该利用继承和组合机制来进行扩展。
  • 用不同的词性命名,如属性名用名词,方法名用动词。

10.一些相关的BIF

  • issubclass(class,classinfo):检测两个类是否是继承关系,若是返回True,不是返回False
  • isinstance(object, classinfo):检查前面一个对象是否是后面那个类的实例对象。
  • hasatte(object,name):测试一个对象是否有属性名
  • getatte(object,name[,default]):name要加单引号
  • setatte(object, name, value)
  • delatte(ovjectm, name)
  • property(fget=None, fset=None,fdel= None, doc= None):通过属性来设置属性。

课后练习:

0.按照以下提示尝试定义一个Person类并生成类实例对象。
属性:姓名(默认姓名为“小甲鱼”)
方法:打印姓名
提示:放法中对属性的引用形式加上self,如self.name
在这里插入图片描述
1.按照以下提示尝试定义一个矩阵类并生成类实例对象。
属性:长和宽
方法:设置长和宽->setRect(self),获得长和宽->getRect(self),获得面积->getArea(self)
提示:方法中对属性的引用形式加上self,如self.width
在这里插入图片描述
2.self参数的作用是什么?
绑定方法。self参数类似于人的身份证,每个实例对象都有唯一的self参数。

3.如果我们不希望对象的属性或方法被外部直接引用,我们可以怎么做?
我们可以在属性或方法名字前边加上双下划线,这样子从外部是无法直接访问到,会显示AttributeError错误。因为加了“__”就变成私有元素,类外部不能直接访问,但可以通过类的方法间接访问。但其实Python只是把元素名改变了而已,可以通过“_类名__变量名”访问,即_Person__name。

4.按照以下要求定义一个游乐园门票的类,并尝试计算2个成人+1个小孩平日票价。
a.平日票价100元
b.周末票价为平日的120%
c.儿童半价
在这里插入图片描述
5.游戏编程:按以下要求定义一个乌龟类和鱼类并尝试编写游戏。(初学者不一定可以完整实现,但请务必先自己动手,你会从中学习到很多知识的)
a.假设游戏场景为范围(x,y)为0<=x<=10,0<=y<=10
b.游戏生成1只乌龟和10条鱼
c.它们的移动方向均随机
d.乌龟的最大移动能力是2(Ta可以随机选择1还是2移动),鱼儿的最大移动能力是1
e.当移动到场景边缘,自动向反方向移动
f.乌龟初始化体力为100(上限)
g.乌龟每移动一次,体力消耗1
h.当乌龟和鱼坐标重叠,乌龟吃掉鱼,乌龟体力增加20
i.鱼暂不计算体力

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你是零基础入门Python,我建议你按照以下学习路线进行学习。首先,你可以通过参考中提供的详细教程来系统学习Python基础知识。该教程从Python基础、文件操作、函数等方面进行了讲解。你可以下载并安装Pycharm软件,通过实践来巩固学习的知识。 学习路线: 1. 学习Python的基本语法和编程概念,包括变量、数据类型、注释等。 2. 了解Python的函数,包括函数的使用、参数、闭包、装饰器等。 3. 学习Python的模块,了解模块的概念和使用,如logging、json、pickle、time等。 4. 学习Python的常用技术点,包括处理文件、正则表达式、网络编程、多线程等。你可以参考中提供的学习资源找到对应的学习材料。 5. 深入学习更高级的Python知识,如面向对象编程、数据库操作、Web开发等。 在学习过程中,你可以使用Pycharm等开发工具来实践编程,加深对Python的理解和掌握。此外,也可以参考中提供的Python学习资料,找到适合自己的学习资源。 通过系统的学习和实践,你可以逐步提高自己的Python编程水平,从零基础入门到掌握Python编程技能。祝你学习顺利!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [python基础入门教程(非常详细),从零基础入门到精通,看完这一篇就够了](https://blog.csdn.net/xiangxueerfei/article/details/128148510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值