iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >怎么理解Python动态语言
  • 185
分享到

怎么理解Python动态语言

2023-06-17 16:06:15 185人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本篇文章给大家分享的是有关怎么理解python动态语言,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有人说Python动态语言是一种解释性的语言,但是这种说法是不正确的,其实P

本篇文章给大家分享的是有关怎么理解python动态语言,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

有人说Python动态语言是一种解释性的语言,但是这种说法是不正确的,其实Python语言是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,对于***次接触编程的用户,Python绝对是***选择。

但是很多人都会用了一段时间basic之后就把它废置了,因为觉得除了能够用来play,功能太少。即便是vb,也是功能不甚完善的,很多地方要依靠其他语言写的组件和直接调用api来完成功能。而python由于粗看之下,也是那么的像玩具。而且那个交互式命令行给人带来的教学语言的感觉更加加强了人们的想法。

但是Python其实功能不能说是弱,其实是非常强大。python内置了重要的数据结构和文件这些功能,而且包含了一个很大的标准库,基本上涵盖了从GUI到数据库网络种种功能上的要求。

而且还有很多爱好者,公司企业为python写第三方的库,这些库品种繁多,功能齐全。而且还能把其他语言的库加以包装给自己使用。直接用c这样的语言了来写扩展的库也是可以的。

所以说,python像basic一样好学,但是功能却要强大很多。python速度很慢,只能用在很少的应用场合。对于习惯了汇编和c++这样的语言的人,思维总是有一个惯性(包括我自己也经历了这么一个阶段)。

就是看文件大小是数字节的,任何运行时的overhead都是绝对不可以的。那么一看见python这样的动态语言,而且动态得非常厉害的语言,怎么看怎么不顺眼也是情理之中了。关键的问题首先是你是否需要省那么个100~200k的大小。

现在的内存,硬盘,网络通信环境已经不大在乎这么一点的空间了,所以大小不是问题。关键的是运行时间吗?其实在很多场合下是不需要那么快的速度的,比如开一个窗口,运行如果延时100ms,你感觉得到吗?

python还能够把py文件进行一些处理变成pyc文件,加速源文件的解释执行。像java的虚拟机中的just in time或者hot spot这样的预先读取,预先编译的技术都能构同等的用于python。

Python动态语言还有一个非常大的好处就是能够用C这样的快速的语言写扩展模块。在软件中一般都是20%的代码占据了80%的运行时间。这样你可以先用benchmark这样的工具看看软件是否慢得无法忍受了,然后再用profiler查出问题瓶颈在哪里,那么就可以把关键的代码用C解决掉。

这样可以节省了开发时间(大部分代码用python写,比C快),而且运行速度也可以令人满意。所以说,对于python的速度是不用多担心的。但是为了客观起见,python的却是慢的,在python中什么都是对象,这个比java这样的不那么纯的OO语言,就要差一些了。

有这个看法主要是认为,因为python是动态的,所以缺乏静态的类型检查,那么程序中的错误就很难发现了。设置可能说没有执行到的块的语法都没有得到完全彻底的检查。变量由于没有声明,所以容易产生误写的错误。事情真这么糟糕吗?

***个缺乏类型检查是说一个函数有几个参数,但是由于参数的类型是动态确定的,所以没有办法在静态的时候就检查传入的参数和参数表是否匹配了。问题是你写的函数一定要自己测试了。

而且一旦出了问题,你是非常容易找到出错的地方的。dynamic typing是那么灵活好用,多这么一点麻烦也是值得的。第二个看法就是错误的。在python中所有语法都得到了检查的。即使是处在分支语句中。只是有可能你说的是这样的情况。

对于习惯了汇编和C++这样的语言的人,思维总是有一个惯性(包括我自己也经历了这么一个阶段)。就是看文件大小是数字节的,任何运行时的overhead都是绝对不可以的。那么一看见python这样的动态语言,而且动态得非常厉害的语言,怎么看怎么不顺眼也是情理之中了。

关键的问题首先是你是否需要省那么个100~200k的大小,现在的内存,硬盘,网络通信环境已经不大在乎这么一点的空间了,所以大小不是问题。关键的是运行时间吗?其实在很多场合下是不需要那么快的速度的,比如开一个窗口,运行如果延时100ms,你感觉得到吗?

Python动态语言还能够把py文件进行一些处理变成pyc文件,加速源文件的解释执行。像java的虚拟机中的just in time或者hot spot这样的预先读取,预先编译的技术都能构同等的用于python。

python还有一个非常大的好处就是能够用C这样的快速的语言写扩展模块。在软件中一般都是20%的代码占据了80%的运行时间。这样你可以先用benchmark这样的工具看看软件是否慢得无法忍受了,然后再用profiler查出问题瓶颈在哪里,那么就可以把关键的代码用C解决掉。这样可以节省了开发时间(大部分代码用python写,比C快),而且运行速度也可以令人满意。

以上就是怎么理解Python动态语言,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网Python频道。

--结束END--

本文标题: 怎么理解Python动态语言

本文链接: https://www.lsjlt.com/news/290751.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么理解Python动态语言
    本篇文章给大家分享的是有关怎么理解Python动态语言,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有人说Python动态语言是一种解释性的语言,但是这种说法是不正确的,其实P...
    99+
    2023-06-17
  • 静态语言和动态语言,解释和编译
    前提 通过高级语言编写的源码,我们能够轻松理解,但对于计算机来说,它只认识二进制指令,源码就是天书,根本无法识别。源码要想执行,必须先转换成二进制指令。 所谓二进制指令,也就是由 0 和 1 组成的机...
    99+
    2023-09-05
    ruby php 开发语言
  • 详解C语言之动态内存管理
    目录开辟动态内存的函数释放开辟的动态内存空间的函数错误信息函数具体使用例: 常见的动态内存错误总结先来了解一下动态管理内存所需用到的函数 开辟动态内存的函数 1.mallo...
    99+
    2024-04-02
  • Python是一门动态语言吗
    这篇文章主要讲解了“Python是一门动态语言吗”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python是一门动态语言吗”吧!动态语言的定义动态编程语言 是 高级程序设计语言 的一个类别,...
    99+
    2023-06-02
  • python动态语言特性小结
    python 动态语言特性  A.动态模块调用 如果模块是动态的, 如从某个配置文件中读取. 那么关于模块的字符串如何转换为代码的import呢, 下面代码很好解释了这一点 例子1 1 sys = __import__('sys') 2...
    99+
    2023-01-31
    小结 特性 语言
  • 详解C语言中的动态内存管理
    目录一、动态内存管理1.1为什么要有动态内存管理1.2动态内存介绍1.3常见的动态内存错误一、动态内存管理 1.1为什么要有动态内存管理 1.1.1  在c语言中我们普通的...
    99+
    2022-12-12
    C语言动态内存管理 C语言 内存管理 C语言 内存
  • go语言是动态语言吗
    go不是动态语言。go语言是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,其变量(variable)是有明确类型的,编译器也会检查变量类型的正确性;因此在使用变量之前必须声明数据类型需要,语法“var 变量...
    99+
    2023-05-14
    动态语言 go语言 Golang
  • C语言 动态内存管理全面解析
    目录1. 为什么存在动态内存分配2. 动态内存函数的介绍2.1 malloc和free2.2 calloc 2.3 realloc3. 常见的动态内存错误3.1 对NULL...
    99+
    2024-04-02
  • r语言怎么画动态烟花
    在R语言中,可以使用`animation`包来画动态烟花。下面是一个简单的例子:```R# 安装和加载animation包insta...
    99+
    2023-08-18
    r语言
  • C语言动态数组详解
    目录内存分配函数malloc calloc realloc free内存操作函数 memset memcpy memmove二维动态数组的建立和释放总结内存分配函数malloc ca...
    99+
    2024-04-02
  • go语言是不是动态语言
    这篇文章主要介绍了go语言是不是动态语言的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇go语言是不是动态语言文章都会有所收获,下面我们一起来看看吧。go不是动态语言。go语言是Google开发的一种静态强类型、...
    99+
    2023-07-04
  • 深入了解C语言的动态内存管理
    目录一、为什么会存在动态内存二、动态内存函数1.malloc和free2.calloc3.realloc三、动态内存函数常见错误2.对NULL指针进行解引用操作3.使用free释放一...
    99+
    2024-04-02
  • C语言中怎么动态扩容String
    这篇文章给大家介绍C语言中怎么动态扩容String,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先定义一个string的句柄,相当于C++中的实例struct c_string; typedef&...
    99+
    2023-06-16
  • C语言的动态内存管理你了解吗
    目录C/C++内存分配方式C++内存管理方式new和delete的使用new和delete的骚操作new和delete的区别重载new和delete定位new表达式内存泄露总结C/C...
    99+
    2024-04-02
  • C语言中动态内存管理图文详解
    目录1.动态内存开辟的原因2.动态内存函数的介绍2.1malloc和free2.2calloc2.3realloc3.常见的动态内存错误3.1对NULL指针的解引用操作3.2对动态开...
    99+
    2024-04-02
  • go语言的动态特性解析
    go语言提供了动态特性,包括反射和接口,使其具有静态类型语言的优势,同时保留了动态语言的灵活性:反射允许程序在运行时检查和操作类型和值,包括获取类型信息、设置字段值和调用方法。接口定义了...
    99+
    2024-04-08
    go语言 动态特性
  • C语言动态内存管理malloc函数怎么使用
    这篇文章主要讲解了“C语言动态内存管理malloc函数怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言动态内存管理malloc函数怎么使用”吧!1.C语言动态内存管理库函数介绍1...
    99+
    2023-07-04
  • Go语言:静态还是动态?
    go 是一种静态类型语言,但通过使用 interface{} 类型,它支持一些动态特性的元素,允许在运行时动态检查变量类型。这提供了灵活性,但需要谨慎使用以避免运行时错误。 Go语言:...
    99+
    2024-04-08
    go语言 静态语言
  • C语言动态内存管理介绍
    目录前言:C 语言为内存的分配和管理提供了几个函数:1.malloc() 用法2.calloc() 用法3.realloc() 与 free() 用法前言: 简单记录一下,内存管理...
    99+
    2024-04-02
  • 【C语言进阶】动态内存管理
    动态内存管理 1.为什么存在动态内存分配2.动态内存函数的介绍2.1malloc和free2.2calloc2.3realloc 3.常见的动态内存错误3.1 对NULL指针的解引用操作...
    99+
    2023-10-25
    c语言 开发语言 1024程序员节
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作