鱼C论坛

 找回密码
 立即注册
查看: 3707|回复: 19

[技术交流] 《零基础入门学习Python》37讲内容归纳

[复制链接]
发表于 2015-11-8 21:37:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 醉酒青牛 于 2015-11-16 11:29 编辑

小牛有话说:
        各位鱼油,大家好。我是小牛,如果您已经看完或者正在看鱼神的《零基础入门学习Python》视频,想随时复习前面的知识点却又不想花太多时间和精力重翻视频,来这里《零基础入门Python学习》整理瞅瞅小牛呕心做的的视频内容的总结吧^_^,如果觉得有用的话,可以点击所属淘贴右上角的“订阅”按钮,这样以后就能够随时看到小牛做的最新的整理了。
        年底恰逢各种项目结题,近两周内没有时间和精力更新帖子,这里对关注小牛帖子鱼油们说声抱歉了,后面小牛会尽力加快更新速度,争取在11月份更完类和对象部分。
本期主要内容导读:
        这一期我们归纳一下鱼神第三十七讲“类和对象:面向对象编程”。这一期里面鱼神主要是介绍了类方法内self参数的意义,Python的魔法方法概念及第一个魔法方法构造函数的定义过程以及Python内成员的公有和私有设置。下面我们就来详细介绍一下各个知识点吧~~~~~~
1. 类方法的self参数含义
        在Python中类的的方法都要有self参数,其实质为对类的实例化对象的绑定从而使得在类的实例化对象调用方法时能够确认出是对哪个对象进行操作,与C里面的this指针是一样的,举例说明:
>>> class Ball:
        def setName(self,name):
                self.name = name
        def kick(self):
                print('我叫%s,卧槽,谁踢我...'%self.name)
               
>>> a = Ball()
>>> a.setName('球A')                #调用setName方法时,self指代的就是对象a本身
>>> a.kick()
我叫球A,卧槽,谁踢我...
>>> b = Ball()
>>> b.setName('土豆')
>>> b.kick()
我叫土豆,卧槽,谁踢我...
2. Python的魔法方法之一构造方法
        在Python中有一种特殊的方法,他会在实例化类对象时自动调用该方法,这些方法如果没有定义则系统会自动生成,我们将这些方法称之为Python的魔法方法,定义这些方法必须咋方法名左右两侧加上双下划线。在这里面我们首先介绍一个为类对象属性初始化的方法-构造方法。构造方法的函数名为__init___,在函数对象实例化时调用,举例说明:
>>> class Ball:
        def __init__(self,name):
                self.name = name
        def kick(self):
                print('我叫%s,卧槽,谁踢我...'%self.name)               
>>> a = Ball('球A')
>>> b = Ball('土豆')
>>> a.kick()
我叫球A,卧槽,谁踢我...
>>> b.kick()
我叫土豆,卧槽,谁踢我...
3. Python的公有私有成员设置
        严格来说,在Python里面的方法和属性都是公有的,但是可以通过名字转置的方法做出假私有的方法。设置假私有的方法很简单,只要在变量或者方法前加上双下划线即可,这样系统会默认在其前面加上”_类名“,这样子我们就没有办法直接对其进行访问,但可以使用”对象名._类名__.成员名“对其进行访问,举例说明:
>>> class Person:
        name = '小甲鱼'
        __age = 18

       
>>> xiaoli = Person()
>>> print(xiaoli.name)
小甲鱼
>>> print('xiaoli的年龄是%d'%xiaoli.__age)
Traceback (most recent call last):
  File "<pyshell#24>", line 1, in <module>
    print('xiaoli的年龄是%d'%xiaoli.__age)
AttributeError: 'Person' object has no attribute '__age'

>>> print('xiaoli的年龄是%d岁'%xiaoli._Person__age)
xiaoli的年龄是18岁

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-8 22:22:14 | 显示全部楼层
呵呵支持 我也正在学,目前学到42讲了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-15 20:31:27 | 显示全部楼层
无名似名 发表于 2015-11-8 22:22
呵呵支持 我也正在学,目前学到42讲了

学到42讲了,好棒啊,说明你现在已经算是入门了啊,后面都做些例子巩固一下。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-15 22:45:56 | 显示全部楼层
你理解的还不够彻底 需要多进行些测试才能明白
用dir(classname)查看类中有哪些东西
用dir(instance)查看实例中有哪些东西
用__dict__查看有哪些属性
用id()查看哪些属性一样
我通过一系列测试得出结论:
类中的所有东西都“复制”实例中了包括类函数,静态函数,类变量,其实能通过实例调用相同名字的类变量
instance__class__.value
另外self是用来进行绑定用的,这点可以通过直接打印函数名能够看到哪个类的对象被绑定
另外还有继承,也可以用上述方法研究看看这些父类子类中到底有哪些东西:其实父类中所有的东西也都复制到子类中了,正是有了显示绑定才能方便的用子类实例调用父类的方法:应为子类实例绑定了父类函数
说到底,都是python的设计哲学比较好,能够用一些方法清楚的看到所有的东西,比起java来说迷迷糊糊的只能看资料了解哪些类中有什么东西,继承时,创建实例时发生了什么改变。

评分

参与人数 1荣誉 +2 鱼币 +2 收起 理由
醉酒青牛 + 2 + 2 感谢楼主无私奉献!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2015-11-15 23:46:35 | 显示全部楼层
支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-11-16 11:06:27 | 显示全部楼层
无名似名 发表于 2015-11-15 22:45
你理解的还不够彻底 需要多进行些测试才能明白
用dir(classname)查看类中有哪些东西
用dir(instance)查看 ...

感谢无名大侠的指点:handshake
后面整理的时候如果有什么不当的地方还望多多指正,类和对象无论在哪门面向对象编程语言来说都是极其基础和重要的,我会一点点的吃透,并随时修正自己整理的东西,希望最后呈现给大家的是本质而且能深入浅出。:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-16 11:56:27 | 显示全部楼层
这种学习态度棒棒哒~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-16 12:11:21 From FishC Mobile | 显示全部楼层
我学到做爬虫这了 你学到哪了 要不我把我的学习理解发给你做个参考
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-16 14:36:23 | 显示全部楼层
无名似名 发表于 2015-11-16 12:11
我学到做爬虫这了 你学到哪了 要不我把我的学习理解发给你做个参考


非常感谢,我刚看到爬虫,写帖子主要是想先将爬虫之前的知识点串一串,作为后续复习用。今日听君一席话,觉得对于Python的把握还远远不够啊。我qq514284032,加q聊,:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-11-25 10:39:02 | 显示全部楼层
赞~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-11-27 10:28:17 | 显示全部楼层
又来复习一遍,学这个要是能加上自己特别的形象比喻就好理解多了:smile
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-12-7 19:25:41 | 显示全部楼层
学习学习啦 知其然 知其所以然
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-13 09:21:33 | 显示全部楼层
支持楼主
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-14 09:57:55 | 显示全部楼层
对象名._类名__.成员名  这个知识点好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-22 15:50:35 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-22 15:52:05 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-27 09:33:24 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-27 10:59:05 | 显示全部楼层
支持啊,我也正在学,刚学到12讲~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-8-27 17:59:59 | 显示全部楼层
不明觉厉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-8 18:33:03 | 显示全部楼层
归纳的不错啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表