当前位置: 首页 > news >正文

社交网站上的商城怎么做wordpress wplogin.php

社交网站上的商城怎么做,wordpress wplogin.php,网站建设案例信息,网单怎么做文章目录 1 模块和包1.1 模块和包1.1.1 模块1.1.2 包1.1.3 简单使用 1.2 import 语句1.2.1 import1.2.2 from … import 语句1.2.3 from … import * 语句 1.4 深入模块1.4.1 模块符号表1.4.2 __name__属性1.4.3 dir() 函数1.4.4 作用域 1.5 常用内置模块 1 模块和包 1.1 模块… 文章目录 1 模块和包1.1 模块和包1.1.1 模块1.1.2 包1.1.3 简单使用 1.2 import 语句1.2.1 import1.2.2 from … import 语句1.2.3 from … import * 语句 1.4 深入模块1.4.1 模块符号表1.4.2 __name__属性1.4.3 dir() 函数1.4.4 作用域 1.5 常用内置模块 1 模块和包 1.1 模块和包 1.1.1 模块 在计算机程序的开发过程中随着程序代码越写越多在一个文件里代码就会越来越长越来越不容易维护。 为了编写可维护的代码我们把很多函数分组分别放到不同的文件里这样每个文件包含的代码就相对较少很多编程语言都采用这种组织代码的方式。在Python中一个.py文件就称之为一个模块Module。 模块是一个包含所有定义的函数和变量的文件其后缀名是.py。模块可以被别的程序引入以使用该模块中的函数等功能。 1.1.2 包 最大的好处是大大提高了代码的可维护性。其次编写代码不必从零开始。当一个模块编写完毕就可以被其他地方引用。我们在编写程序的时候也经常引用其他模块包括Python内置的模块和来自第三方的模块。 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中因此我们自己在编写模块时不必考虑名字会与其他模块冲突。但是也要注意尽量不要与内置函数名字冲突 但是如果不同的人编写的模块名相同怎么办为了避免模块名冲突Python 又引入了按目录来组织模块的方法称为包Packag。 包是一种管理 Python 模块命名空间的形式采用点模块名称。比如一个模块的名称是 A.B 那么表示一个包 A中的子模块 B 。就好像使用模块的时候不用担心不同模块之间的全局变量相互影响一样采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。 举个例子一个abc.py的文件就是一个名字叫abc的模块一个xyz.py的文件就是一个名字叫xyz的模块。 现在假设我们的abc和xyz这两个模块名字与其他模块冲突了于是我们可以通过包来组织模块避免冲突。方法是选择一个顶层包名比如mycompany按照如下目录存放 mycompany__init__.pyabc.pyxyz.ph引入了包以后只要顶层的包名不与别人冲突那所有模块都不会与别人冲突。现在abc.py模块的名字就变成了mycompany.abc类似的xyz.py的模块名变成了mycompany.xyz。 注意每一个包目录下面都会有一个__init__.py的文件这个文件是必须存在的否则Python就把这个目录当成普通目录而不是一个包。__init__.py可以是空文件也可以有Python代码因为__init__.py本身就是一个模块而它的模块名就是mycompany。 在导入一个包的时候Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。 默认情况下Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块搜索路径存放在sys模块的path变量中。 目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包主要是为了避免一些滥俗的名字比如叫做 string不小心的影响搜索路径中的有效模块。 最简单的情况放一个空的file:__init__.py就可以了。当然这个文件中也可以包含一些初始化代码或者为 __all__变量赋值。 注意当使用 from package import item 这种形式的时候对应的 item 既可以是包里面的子模块子包或者包里面定义的其他名称比如函数类或者变量。 import 语法会首先把 item 当作一个包定义的名称如果没找到再试图按照一个模块去导入。如果还没找到抛出一个 :exc:ImportError 异常。如果使用形如 import item.subitem.subsubitem 这种导入形式除了最后一项都必须是包而最后一项则可以是模块或者是包但是不可以是类函数或者变量的名字。 无论是隐式的还是显式的相对导入都是从当前模块开始的。主模块的名字永远是__main__一个Python应用程序的主模块应当总是使用绝对路径引用。 包还提供一个额外的属性__path__。这是一个目录列表里面每一个包含的目录都有为这个包服务的__init__.py。可以修改这个变量用来影响包含在包里面的模块和子包。 1.1.3 简单使用 下面是一个使用 python 标准库中模块的例子。 #!/usr/bin/python3 # 文件名: using_sys.py 模块说明 __author__ 开发者名字import sysprint(命令行参数如下:) for i in sys.argv:print(i)print(\n\nPython 路径为, sys.path, \n)执行结果如下所示 $ python using_sys.py 参数1 参数2 命令行参数如下: using_sys.py 参数1 参数2Python 路径为 [/root, /usr/lib/python3.4, /usr/lib/python3.4/plat-x86_64-linux-gnu, /usr/lib/python3.4/lib-dynload, /usr/local/lib/python3.4/dist-packages, /usr/lib/python3/dist-packages] import sys 引入 python 标准库中的 sys.py 模块这是引入某一模块的方法。sys.argv 是一个包含命令行参数的列表。sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。 1.2 import 语句 1.2.1 import 想使用 Python 源文件只需在另一个源文件里执行 import 语句语法如下 import module1[, module2[,... moduleN]当解释器遇到 import 语句如果模块在当前的搜索路径就会被导入。搜索路径时一个解释器会先进行搜索的所有目录的列表。 一个模块只会被导入一次不管你执行了多少次 import。这样可以防止导入模块被一遍又一遍地执行。 当我们使用 import 语句的时候Python解释器是怎样找到对应的文件的呢 这就涉及到 Python 的搜索路径搜索路径是由一系列目录名组成的Python解释器就依次从这些目录中去寻找所引入的模块。 这看起来很像环境变量事实上也可以通过定义环境变量的方式来确定搜索路径。 搜索路径是在 Python 编译或安装的时候确定的安装新的库应该也会修改。搜索路径被存储在 sys 模块中的 path 变量做一个简单的demo在交互式解释器中输入以下代码 import syssys.path [, /usr/lib/python3.4, /usr/lib/python3.4/plat-x86_64-linux-gnu, /usr/lib/python3.4/lib-dynload, /usr/local/lib/python3.4/dist-packages, /usr/lib/python3/dist-packages]sys.path 输出是一个列表其中第一项是空串 代表当前目录若是从一个脚本中打印出来的话可以更清楚地看出是哪个目录亦即我们执行python解释器的目录对于脚本的话就是运行的脚本所在的目录。 因此若在当前目录下存在与要引入模块同名的文件就会把要引入的模块屏蔽掉。 1.2.2 from … import 语句 Python 的 from 语句可以从模块中导入一个指定的部分到当前命名空间中语法如下from modname import name1[, name2[, ... nameN]] 例如要导入模块 fibo 的 fib 函数使用如下语句 from fibo import fib, fib2fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377这个声明不会把整个fibo模块导入到当前的命名空间中它只会将fibo里的fib函数引入进来。 1.2.3 from … import * 语句 把一个模块的所有内容全都导入到当前的命名空间也是可行的只需使用如下声明from modname import * 这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。 1.4 深入模块 1.4.1 模块符号表 模块除了方法定义还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。 每个模块有各自独立的符号表在模块内部为所有的函数当作全局符号表来使用。 所以模块的开发者可以放心大胆的在模块内部使用这些全局变量而不用担心把其他用户的全局变量搞混。 从另一个方面可以通过 modname.itemname 这样的表示法来访问模块内的函数。 模块是可以导入其他模块的。在一个模块或者脚本或者其他地方的最前面使用 import 来导入一个模块当然这只是一个惯例而不是强制的。被导入的模块的名称将被放入当前操作的模块的符号表中。 使用 import 直接把模块内函数变量的名称导入到当前操作模块。但是这种导入的方法不会把被导入的模块的名称放在当前的字符表中所以在这个例子里面fibo 这个名称是没有定义的 from fibo import fib, fib2fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377一次性的把模块中的所有函数变量名称都导入到当前模块的字符表: from fibo import *fib(500) 1 1 2 3 5 8 13 21 34 55 89 144 233 377这将把所有的名字都导入进来但是那些由单一下划线_开头的名字不在此例。大多数情况 Python程序员不使用这种方法因为引入的其它来源的命名很可能覆盖了已有的定义。 1.4.2 __name__属性 一个模块被另一个程序第一次引入时其主程序将运行。如果我们想在模块被引入时模块中的某一程序块不执行我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。 #!/usr/bin/python3 # Filename: using_name.pyif __name__ __main__:print(程序自身在运行) else:print(我来自另一模块) 运行输出如下$ python using_name.py 程序自身在运行 $ pythonimport using_name 我来自另一模块说明 每个模块都有一个__name__属性当其值是__main__时表明该模块自身在运行否则是被引入。 1.4.3 dir() 函数 内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回: import fibo, sysdir(fibo) [__name__, fib, fib2]dir(sys) [__displayhook__, __doc__, __excepthook__, __loader__, __name__,__package__, __stderr__, __stdin__, __stdout__,_clear_type_cache, _current_frames, _debugmallocstats, _getframe,_home, _mercurial, _xoptions, abiflags, api_version, argv,base_exec_prefix, base_prefix, builtin_module_names, byteorder,call_tracing, callstats, copyright, displayhook,dont_write_bytecode, exc_info, excepthook, exec_prefix,executable, exit, flags, float_info, float_repr_style,getcheckinterval, getdefaultencoding, getdlopenflags,getfilesystemencoding, getobjects, getprofile, getrecursionlimit,getrefcount, getsizeof, getswitchinterval, gettotalrefcount,gettrace, hash_info, hexversion, implementation, int_info,intern, maxsize, maxunicode, meta_path, modules, path,path_hooks, path_importer_cache, platform, prefix, ps1,setcheckinterval, setdlopenflags, setprofile, setrecursionlimit,setswitchinterval, settrace, stderr, stdin, stdout,thread_info, version, version_info, warnoptions]如果没有给定参数那么 dir() 函数会罗列出当前定义的所有名称: a [1, 2, 3, 4, 5]import fibofib fibo.fibdir() # 得到一个当前模块中定义的属性列表 [__builtins__, __name__, a, fib, fibo, sys]a 5 # 建立一个新的变量 adir() [__builtins__, __doc__, __name__, a, sys]del a # 删除变量名adir() [__builtins__, __doc__, __name__, sys]1.4.4 作用域 在一个模块中我们可能会定义很多函数和变量但有的函数和变量我们希望给别人使用有的函数和变量我们希望仅仅在模块内部使用。在Python中是通过_前缀来实现的。 正常的函数和变量名是公开的public可以被直接引用比如abcx123PI等 类似 __xxx__ 这样的变量是特殊变量可以被直接引用但是有特殊用途比如上面的 __author__ __name__ 就是特殊变量hello模块定义的文档注释也可以用特殊变量 __doc__ 访问我们自己的变量一般不要用这种变量名 类似_xxx和__xxx这样的函数或变量就是非公开的private不应该被直接引用比如_abc__abc等 之所以我们说private函数和变量“不应该”被直接引用而不是不能被直接引用是因为Python并没有一种方法可以完全限制访问private函数或变量但是从编程习惯上不应该引用private函数或变量。 private函数或变量不应该被别人引用那它们有什么用呢请看例子 def _private_1(name):return Hello, %s % namedef _private_2(name):return Hi, %s % namedef greeting(name):if len(name) 3:return _private_1(name)else:return _private_2(name)我们在模块里公开greeting()函数而把内部逻辑用private函数隐藏起来了这样调用greeting()函数不用关心内部的private函数细节这也是一种非常有用的代码封装和抽象的方法外部不需要引用的函数全部定义成 private只有外部需要引用的函数才定义为 public 1.5 常用内置模块 点击了解 Python中常用内置模块
http://www.dnsts.com.cn/news/192120.html

相关文章:

  • 大城县企业网站建设黄冈做网站技术支持的
  • seo技术优化整站深圳微信小程序平台
  • 如何编写网站后台程序国外手机html5网站
  • 如何给客户做网站方案新品发布会的作用
  • 长治网站建设龙采科技技术支持美橙建站五站合一软件
  • server 2008 iis 部署网站网页系统升级每天自动更新
  • 怎么建设一个淘宝客网站谁知道做gif动态图网站
  • 本地服务网站开发WordPress加QQ和微信插件
  • 亿级流量网站架构wordpress 3.9.12
  • 前段 网站建设实例问卷调查网站哪个好
  • 网站空间如何申请群晖直接编辑wordpress
  • 网站横幅广告怎么做到哪查找网站域名
  • 网站的点击率怎么查wordpress小工具滑至顶部
  • 怎样给公司做一个网站少儿编程网
  • 网站信息化建设方案城市建设理论研究收录网站
  • 做二手手机交易网站怎么样自己做网站赚钱年入40万
  • 建设银行河北省分行官方网站网站建设论文范文
  • 天津做网站推广的网站网站模板 兼容
  • 汕头seo网站排名桐城做网站的公司
  • 网站安全管理制度建设营口建网站的公司
  • 微信链接的微网站怎么做的三合一商城网站
  • 陆良县住房和城乡建设局网站服装设计网站模板
  • 年栾洪全单页做网站教程wordpress 设置 logo
  • 惠州网站建设哪里有wordpress服务器安装教程
  • 网站有没有做网站地图怎么看移动互联网开发招人
  • 自己有服务器怎么建设网站wordpress社交游戏
  • 谷歌英文网站优化js特效素材网
  • 太原关键词网站排名保定网站推广费用
  • 怎么做企业网站排名动态ip怎么建设网站
  • 做网站网络公司腾讯cvm安装wordpress