手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > python教程 > 文章 当前位置: python教程 > 文章

黑马python课程表黑马python600集笔记黑马python爬虫教程

时间:2022-05-17    点击: 次    来源:网络    作者:佚名 - 小 + 大

黑马python课程表黑马python600集笔记黑马python爬虫教程


下载地址

https://share.weiyun.com/dHvWwF1o


资料目录
黑马程序员python入门教程19天(美女讲师版)
包含:视频课程-python从0开始学编程(day1-day19)
      课件+代码资料-python从0开始学编程(day1-day19)
黑马python基础班代码和课件资料
黑马python就业班代码和课件资料
黑马python基础班视频课程
包含:1-1 Linux基础(119个视频)
      1-2 python基础(234个视频)
      1-3 面向对象(91个视频)
      1-4 项目飞机大战(42个视频)
黑马python就业班视频课程
包含:01 网络编程
      02 多任务
      03 web服务器v3.1
      04 Python高级语法v3.1
      05 MySQL数据库v3.1
      06 mini-web框架v3.1
      07 HTML和CSS
      08 首页布局案例和移动布局
      09 JavaScriptv
      10 jQuery和js库
      11 Django框架
      12 git版本管理
      13 redis数据库
      14 天天生鲜Django项目
      15 flask框架
      16 微信公众号
      17 爱家租房项目
      18 通用爬虫模块使用
      19 MongoDB数据库
      20 爬虫scrapy框架及案例
      21 数据分析
      22 机器学习
      23 深度学习
      24 数据结构和算法
      25 Python网络爬虫
      26 机器学习入门篇
      27 机器学习入门篇2
      28 机器学习提升篇
      29 数据挖掘篇
      30 深度学习必备原理与实战
      31 深度学习必备原理与实战2
      32 深度学习必备原理与实战3
      33 深度学习必备原理与实战4
      34 深度学习项目实战
      35 深度学习项目实战2
      36 深度学习项目实战3
      
举例

多态
到网上搜索“多态”,仁者见仁智者见智。Python中关于多态的基本体现,可以通过下面的方式来理解。
>>> "This is a book".count("s")
2
>>> [1,2,4,3,5,3].count(3)
2
count()函数的作用是数一数某个元素在对象中出现的次数。从例子中可以看出,我们并没有限定count的参数所引入的值应该是什么类型的。类似的例子还有:
>>> f = lambda x, y: x + y
还记得这个lambda函数吗?
>>> f(2, 3)
5
>>> f("qiw", "sir")
'qiwsir'
>>> f(["python", "java"], ["c++", "lisp"])
['python', 'java', 'c++', 'lisp']
在这个lambda函数中,我们没有限制应该传入什么类型的对象(或者说数据、值),也一定不能限制,因为如果限制了,就不是pythonic了。也就是说,允许给参数传任意类型的数据,并返回相应的结果,至于是否报错,则取决于“+”的能力范围。这就是“多态”的表现。
“多态”是否能正确表达,不是通过限制传入的对象类型实现,而是这样处理:
>>> f("qiw", 2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: cannot concatenate 'str' and 'int' objects
这个例子中,把判断两个对象是否能够相加的任务交给了“+”,不是放在入口处判断类型是否为字符串或者数字。
申明,本书由于无意对概念进行讨论,所以不进行这方面的深入探索,仅仅是告诉各位读者相关信息。并且,既然大多数程序员都在讨论多态,那么我们就按照大多数人说的去介绍。
“多态”(Polymorphism),维基百科中对此有详细解释说明。
多型(英语:Polymorphism),是指面向对象程序执行时,相同的信息可能会送给多个不同的类别对象,系统可依据对象所属类别,引发对应类别的方法而有不同的行为。简单来说,所谓多型意指相同的信息给予不同的对象会引发不同的动作。
简化的说法就是“有多种形式”,就算不知道变量(参数)所引用的对象类型,也一样能进行操作,来者不拒,比如上面显示的例子。在Python中,更为pythonic的做法是根本就不进行类型检验。
例如著名的repr()函数,它能够针对输入的任何对象返回一个字符串,这就是多态的代表之一。
>>> repr([1, 2, 3])
'[1, 2, 3]'
>>> repr(1)
'1'
>>> repr({"lang": "python"})
"{'lang': 'python'}"
使用它写一个小函数,还是作为多态举例。
>>> def length(x):
... print "The length of", repr(x), "is", len(x)
...
>>> length("how are you")
The length of 'how are you' is 11
>>> length([1, 2, 3])
The length of [1, 2, 3] is 3
>>> length({"lang":"python","book":"itdiffer.com"})
The length of {'lang': 'python', 'book': 'itdiffer.com'} is 2
不过,多态也不是万能的,如果这样做:
>>> length(7)
The length of 7 is
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in length
TypeError: object of type 'int' has no len()
报错了。看错误提示,明确告诉了我们“object of type'int'has no
len()”,也就是说,函数length()中的len()会对传入的对象进行检验,如果不符合要求,就会报错,使用者可以根据报错信息对传入的对象类型进行调整。
在诸多介绍多态的文章中都会有关于“猫和狗”的例子。这里也将代码贴出来,读者去体会所谓多态体现。其实,如果你进入了Python的语境,有时不经意间就在应用多态特性。
#!/usr/bin/env python
# coding=utf-8
'''
the code is from: http://zetcode.com/lang/python/oop/
'''
__metaclass__ = type
class Animal:
def __init__(self, name = ""):
self.name = name
def talk(self):
pass
class Cat(Animal):
def talk(self):
print "Meow!"
class Dog(Animal):
def talk(self):
print "Woof!"
a = Animal()
a.talk()
c = Cat("Missy")
c.talk()
d = Dog("Rocky")
d.talk()
保存后运行之:
$ python 21101.py
Meow!
Woof!
代码中有Cat和Dog两个类,都继承了类Animal,它们都有talk()方法,输入不同的动物名称,会得出相应的结果。
关于多态,有一个被称作“鸭子类型”(duck typeing)的东西,其含义在维基百科中被表述为:
在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。这个概念的名字来源于James Whitcomb Riley提出的鸭子测试,“鸭子测试”可以这样表述:“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”
最后要提示读者,类型检查是毁掉多态的利器,比如type、isinstance以及isubclass函数,所以,一定要慎用这些类型检查函数。

上一篇:黑马python教学视频教程黑马python下载38期39期2018吾爱破解

下一篇:没有了

推荐阅读
声明 | 联系我们 | 关于我们
备案ICP编号  |   QQ:2151239526  |  地址:北京市东城区  |  电话:16605168200  |