首页 > 编程知识 正文

python语言有什么特点,Python语言有什么特点

时间:2023-05-06 16:25:52 阅读:280525 作者:1893

pyton语言的几个显著特点 概述

     本文分析python下面几个显蓍特点
  
1. python基本特点及运行问题
2. python开发工具包
3. 代码块问题
4. 方法重载问题
5. 继承与多态问题
6. package-from-import-main函数问题

一、pyton基本特点及运行问题 是脚本文件,.py文件
 脚本文件就是一边解释,一边运行的文件
 所以运行起来,可以与sql脚本相似,选中一部分运行,也可以整体运行
 spyder3环境,选中一部分运行,即ctlr+enter
 pycharm,alt+shift+e
 也可以直接命令行运行
>>>a=[12,45,56]
>>>print(a)
[12,45,56]
>>>
  命令行可以运行任何内容,直接运行xxx.py文件xxx.py也可以编绎后运行
 xxx.py–>xxx.pyc,或xxxx.pyo等
 xxx.py是源程序文件,是文本文件
 xxx.pyc,或xxx.pyo是二进制文件
 .pyc,.pyo是python2的后缀,python3发生了改变xxx.py源文件是跨平台文件,可以不修改一个字代码运行在
window环境(win10/win7/xp)
linux环境
mac苹果操作系统环境 二、pyton开发工具包

  有时需要引用外部开发工具包,pyhon提供了自动集成环境,类似java的maven或gradle工具。
  这里有一个问题,就是下载国外工具包时,网不通,或网速慢,解决办法是采用国内镜像。有下面几个国内镜像

清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutlinux.org/ 豆瓣:http://pypi.douban.com/simple/镜像文件配置如下(win10,其他没有测试过)c:users自己的用户名pippip.ini[global]index-url=http://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com一次只能加载一个镜像地址安装一个不存在外部包方法是pip install 包名称例如pip install pyqt5pip install lxml。。。如果外部安装包己下载到本地,则下面方法安装pip install 某某外部包.whl后缀为.whl 三、代码块问题

  python语言没有{},或begin…end,而是采用代码块对齐,如果对齐有错,则就类似javascript/java语言的{}放置的位置有错
  python称为pep8规则
  
 这一点上是与其他所有语言最大的不同点,依据排版对齐,决定代码块, 也许也在一类中,也许在一个函数中,也许在一段控制语句中,也许下一行代码就是另一个函数等。

四、方法重载问题 重载是方法名称相同,参数类型,或个数不相同, 在java/C++中都有方法重载,在python/javascript中,没有方法重载, python的类可以写多个构造函数,只有最后一个构造函数才有用, 这里最大的问题时,写多个重名方法,编绎时不出现语法错误。 五、继承与多态问题 python变量属于弱类型变量,或无类型变量,有下面特点同一个变量,可以是任何数据类型,不赋值时,无数据类型,只有在赋值后,才产生数据类型,这一点与java/C++完全不同,后者在定义时,产生数据数据类型,以后一直不能改变,泛型例外。python有继承,也有多态,他的多态不是java/C++的多态,或python不是严格意义上的多态,示例分析如下 import abcclass A(metaclass=abc.ABCMeta): @abc.abstractmethod def add(self,a,b): passclass B(A): def add(self,a,b): print("class-B add,n=",a,b) return a+b+1class C(A): def add(self,a,b): print("class-C add,n=",a,b) return a+b+10class D():#没有继承A,所以下面add(...)方法,不是类A的多态 def add(self,a,b): print("class-D add,n=",a,b) return a+b+100def add(obj): n=obj.add(2,3) print("add,n=",n) return n;o1=B();a=add(o1) #是标准意义上的多态,类A的add方法多态的第1个态print('a=',a)'''上面输出是class-B add,n= 2 3add,n= 6a= 6'''o2=C();b=add(o2) #是标准意义上的多态,类A的add方法多态的第2个态print('b=',b)'''上面输出是class-C add,n= 2 3add,n= 15b= 15'''o3=D();c=add(o3) #不是标准意义上的多态,不类A的add方法多态print('c=',c)'''上面输出是class-D add,n= 2 3add,n= 105c= 105''' 六、 package-from-import-main函数问题 对比下java文件的结构
1>. 一个类文件首先声明我在哪里,即package,所在的相对目录
2>. 然后声明我需要什么资源,即import操作
3>. 再对他人说,我叫什么名字,即类名称
4> 在类中告诉他人我有什么,即属性
5>. 最后在类中告诉他人我能做什么,即方法
6>. 任何一个类都有一个标准的静态main函数,即运行入口
python没有java的package,但有类似的东东
每个目录下有一个init.py文件,文件内容可以是空的python的任何一个文件,即一个module,模块,可供其他文件import操作简单import moduleA
  则可以引用moudelA中的类与函数,但不能直接用,需要加前缀moduleA,例如
  moduleA中有方法add(a,b),及类A,则import用法是 moduleA1.py,文件内容如下 def add(a,b): ... class A: .... moudleB1.py import moudelA1 n=moduleA1.add(2,3) o=moduleA.A()```    3. 前面import 操作也可以改为from moduelA import *   则代码简化为<div class="se-preview-section-delimiter"></div>

moudleB1.py,文件内容如下
from moudelA1 import *

#n=moduleA1.add(2,3), #不能再用moudelA1,代码有错n=add(2,3) #代码OK#o=moduleA.A() #有错o=A() #OK

“`

created by 坦率的服饰

moudleB1.py,文件内容如下 from moudelA1 import * #n=moduleA1.add(2,3), #不能再用moudelA1,代码有错 n=add(2,3) #代码OK #o=moduleA.A() #有错 o=A() #OK python的main函数
 python语言是脚本语言,没有main函数,是从头到尾自动运行,可以模拟一个main函数,这一点与javascript语言完全相同,示例如下


def fun1():
print('我是fun1。。。函数')
def fun2():
print('我是fun2。。。函数')
def fun3():
print('我是fun1。。。函数')
 
if name==’main‘: #模拟一个main函数运行
fun1() #当然可以是其他任何一个函数

created by 坦率的服饰

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。