html5中文学习网

您的位置: 首页 > 网站及特效实例 > jquery特效 » 正文

python 3快速入门之模块化和类_编程语言综合

[ ] 已经帮助:人解决问题

   首先引用官方的一段话dzVHTML5中文学习网 - HTML5先行者学习网

  Python 展现了“瑞士军刀”的哲学。 这可以通过它更大的包的高级和健壮的功能来得到最好的展现。dzVHTML5中文学习网 - HTML5先行者学习网

  例如:dzVHTML5中文学习网 - HTML5先行者学习网

  xmlrpc.client 和 xmlrpc.server 模块让远程过程调用变得轻而易举。 尽管模块有这样的名字, 用dzVHTML5中文学习网 - HTML5先行者学习网

  户无需拥有 XML 的知识或处理 XML。 ? email 包是一个管理邮件信息的库,包括 MIME 和其它基于dzVHTML5中文学习网 - HTML5先行者学习网

  RFC 2822 的信息文档。 不同 于实际发送和接收信息的 smtplib 和 poplib 模块, email 包包含一dzVHTML5中文学习网 - HTML5先行者学习网

  个构造或解析复杂消息 结构(包括附件)及实现互联网编码和头协议的完整工具集。 xml.dom 和dzVHTML5中文学习网 - HTML5先行者学习网

  xml.sax 包为流行的信息交换格式提供了强大的支持。同样, csv 模块支持在通 用数据库格式中直接dzVHTML5中文学习网 - HTML5先行者学习网

  读写。综合起来,这些模块和包大大简化了 Python 应用程序和其它 工具之间的数据交换。 国际化dzVHTML5中文学习网 - HTML5先行者学习网

  由 gettext , locale 和 codecs 包支持。dzVHTML5中文学习网 - HTML5先行者学习网

  这就是python的优点之一dzVHTML5中文学习网 - HTML5先行者学习网

  上节讨论了基础的一些东西和入门,这里开始讲一些和其他语言类似的地方dzVHTML5中文学习网 - HTML5先行者学习网

  这个时候为了比较方便,我们利用vs2012,安装插件的方法在上一篇文件中已经提到过。dzVHTML5中文学习网 - HTML5先行者学习网

  一、 模块化dzVHTML5中文学习网 - HTML5先行者学习网

  毕竟代码是需要保存的,而且模块化编程也是非常重要的,所以需要把文件保存在不同的地方,尤其是不同的文件夹,在这里展示一下建立的文件结构dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  #Projrct1.pydzVHTML5中文学习网 - HTML5先行者学习网

  import test1dzVHTML5中文学习网 - HTML5先行者学习网

  print("test1.count do there")dzVHTML5中文学习网 - HTML5先行者学习网

  print(test1.__name__)dzVHTML5中文学习网 - HTML5先行者学习网

  a=test1.count(1,2,3)dzVHTML5中文学习网 - HTML5先行者学习网

  print(a)dzVHTML5中文学习网 - HTML5先行者学习网

  import NewFolder1.test2dzVHTML5中文学习网 - HTML5先行者学习网

  print('newfolder1.test2.count do there ')dzVHTML5中文学习网 - HTML5先行者学习网

  print(NewFolder1.test2.__name__)dzVHTML5中文学习网 - HTML5先行者学习网

  a=NewFolder1.test2.count(1,2,3)dzVHTML5中文学习网 - HTML5先行者学习网

  print(a)dzVHTML5中文学习网 - HTML5先行者学习网

  print(dir(test1))dzVHTML5中文学习网 - HTML5先行者学习网

  print(dir(NewFolder1.test2))dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  #test1.pydzVHTML5中文学习网 - HTML5先行者学习网

  def count(a,b,c):dzVHTML5中文学习网 - HTML5先行者学习网

  return a+b-cdzVHTML5中文学习网 - HTML5先行者学习网

  #test2dzVHTML5中文学习网 - HTML5先行者学习网

  def count(a,b,c):dzVHTML5中文学习网 - HTML5先行者学习网

  return a+b+cdzVHTML5中文学习网 - HTML5先行者学习网

  #__init__.pydzVHTML5中文学习网 - HTML5先行者学习网

  print('use a folder!')dzVHTML5中文学习网 - HTML5先行者学习网

  首先我们可以通过右击.py文件的办法,来设置启动文件。dzVHTML5中文学习网 - HTML5先行者学习网

  我们可以使用import关键字来调用其他模块文件dzVHTML5中文学习网 - HTML5先行者学习网

  解释一下__init__文件,如果你想调用一个文件夹的文件,那个文件夹里必须有这么一个文件,调用文件之前,必须用这个文件来进行初始化,就是执行,当然里面空着也无所谓dzVHTML5中文学习网 - HTML5先行者学习网

  内置函数 dir() 用于按模块名搜索模块定义,它返回一个字符串类型的存储列表:dzVHTML5中文学习网 - HTML5先行者学习网

  执行顺序非常明显,我们可以发现.py文件中虽然我们只看到了一个函数,实际上里面有很多预定义的变量,比如__name__,就是指这个文件名。dzVHTML5中文学习网 - HTML5先行者学习网

  二、作用域和类dzVHTML5中文学习网 - HTML5先行者学习网

  Python和c++在类方面有一定关联,下面还是引用官方的一段话dzVHTML5中文学习网 - HTML5先行者学习网

  Python 的类机制通过最小的新语法和语义在语言中实现了类。 它是 C++何 Modula-3 语言中类 机制的混合。 就像模块一样,Python 的类并没有在用户和定义之间设立绝对的屏障,而是依赖 于用户不去“强行闯入定义”的优雅。 另一方面,类的大多数重要特性都被完整的保留下来:类继 承机制允许多重继承,派生类可以覆盖(override)基类中的任何方法或类,可以使用相同的方 法名称调用基类的方法。 对象可以包含任意数量的私有数据。dzVHTML5中文学习网 - HTML5先行者学习网

  暂时用下面一段话,讲一下作用域的事情,仍然是使用一段官方的教学代码说一下。dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  def scope_test():dzVHTML5中文学习网 - HTML5先行者学习网

  def do_local():dzVHTML5中文学习网 - HTML5先行者学习网

  spam = "local spam"dzVHTML5中文学习网 - HTML5先行者学习网

  def do_nonlocal():dzVHTML5中文学习网 - HTML5先行者学习网

  nonlocal spamdzVHTML5中文学习网 - HTML5先行者学习网

  spam = "nonlocal spam"dzVHTML5中文学习网 - HTML5先行者学习网

  def do_global():dzVHTML5中文学习网 - HTML5先行者学习网

  global spamdzVHTML5中文学习网 - HTML5先行者学习网

  spam = "global spam"dzVHTML5中文学习网 - HTML5先行者学习网

  spam = "test spam"dzVHTML5中文学习网 - HTML5先行者学习网

  do_local()dzVHTML5中文学习网 - HTML5先行者学习网

  print("After local assignment:", spam)dzVHTML5中文学习网 - HTML5先行者学习网

  do_nonlocal()dzVHTML5中文学习网 - HTML5先行者学习网

  print("After nonlocal assignment:", spam)dzVHTML5中文学习网 - HTML5先行者学习网

  do_global()dzVHTML5中文学习网 - HTML5先行者学习网

  print("After global assignment:", spam)dzVHTML5中文学习网 - HTML5先行者学习网

  scope_test()dzVHTML5中文学习网 - HTML5先行者学习网

  print("In global scope:", spam)dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  nonlocal非局部的 global全局dzVHTML5中文学习网 - HTML5先行者学习网

  确实和c++一样,设计时封装性并不是和c#一样完善,留个我们可以从外访问的机会dzVHTML5中文学习网 - HTML5先行者学习网

  现在谈一下类dzVHTML5中文学习网 - HTML5先行者学习网

  继承的方法 class lei(lei1,lei2,lei3....)在这里不再多提,可以继承多个类。dzVHTML5中文学习网 - HTML5先行者学习网

  Python2.7和pytho3.3n的区别之一是。3.3没有了经典类,全是新型类,原来就是class对象没有父类,那么就是从object继承而来的,但是在3.3中就成了,在没有继承父类的时候它默认继承了object类。虽说拖累了效率,但是也使代码结构更加完整。dzVHTML5中文学习网 - HTML5先行者学习网

  这点和主流的c#有点关系了。dzVHTML5中文学习网 - HTML5先行者学习网

  我们还是以一个基础的类来说一下dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  class Person:dzVHTML5中文学习网 - HTML5先行者学习网

  name=''dzVHTML5中文学习网 - HTML5先行者学习网

  age=0dzVHTML5中文学习网 - HTML5先行者学习网

  def __init__(self,nm,ag):dzVHTML5中文学习网 - HTML5先行者学习网

  self.name=nmdzVHTML5中文学习网 - HTML5先行者学习网

  self.age=agdzVHTML5中文学习网 - HTML5先行者学习网

  print("constructor run")dzVHTML5中文学习网 - HTML5先行者学习网

  passdzVHTML5中文学习网 - HTML5先行者学习网

  def shuchu(self):dzVHTML5中文学习网 - HTML5先行者学习网

  print(self.name)dzVHTML5中文学习网 - HTML5先行者学习网

  print(self.age)dzVHTML5中文学习网 - HTML5先行者学习网

  passpassdzVHTML5中文学习网 - HTML5先行者学习网

  x=Person('wangji',20)dzVHTML5中文学习网 - HTML5先行者学习网

  x.shuchu()dzVHTML5中文学习网 - HTML5先行者学习网

  复制代码dzVHTML5中文学习网 - HTML5先行者学习网

  __init__()就是所谓的构造函数,在这里不再多提。dzVHTML5中文学习网 - HTML5先行者学习网

  对于学习过c#的朋友我们可以把self当做this,而且在定义函数的时候第一个形参需要是self,dzVHTML5中文学习网 - HTML5先行者学习网

  为什么?dzVHTML5中文学习网 - HTML5先行者学习网

  原理是python中对象的方法,需要先调用自己本身,所以本身也算作一个参数,在这里写出来了,函数的第一个形参我们就默认为self就可以dzVHTML5中文学习网 - HTML5先行者学习网

  我们可以尝试一下,方法的重载是不行的,但python作为面向对象语言,自然不会丢掉函数重载这个面向对象语言所共有的重要特性。。。。其实这个地方我们要通过默认形参来达到这样的目的。。这个地方,我也不是太了解,但是带有默认形参的方法确实可以解决一些和重载有关的问题。dzVHTML5中文学习网 - HTML5先行者学习网

  Python 中的所有方法本质上都是虚方法,所以说重写和其他语言基本一样。dzVHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助