动态语言

动态:动态语言 动态嵌入 动态除了反射以外,还有另外一种实现方式,就是在程序中直接嵌入 Lua、V8 等动态语言引擎。 大多数语言都有类似嵌入包,比如 Go 语言有 go-duktape、otto、golua、gopher-lua。 嵌入 Python 动态语言比较少,因为 Python 引用计数机制比较麻烦,而且 Python 运行时环境太大不是基于嵌入设计。 Lua 本身天生基于嵌入设计的,实现复杂的动态逻辑... 阅读详情

Python是一门动态的语言

1、什么是动态语言

​ 动态编程语言是高级程序设计语言的一个类别,他是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被改进,已有的函数可以被删除或者是其他的结构上的变化。动态语言有:javascript、php、Ruby、Python等都是动态语言。

2、运行过程中给对象绑定(添加)属性
In [1]: class Person(object):
   ...:     def __init__(self, new_name):
   ...:         self.name = new_name
   ...:         

In [2]: wang = Person("老王")

​ 上面的代码中,我们定义了一个Person类,在类中有一个初始属性name,如果我们想添加age属性呢?

In [3]: wang.age = 18

In [4]: print(wang.name)
老王

In [5]: print(wang.age)
18

​ 要给实例对象添加实例属性,可以直接对象名.属性 = 值

3、运行的过程中给类绑定(添加)属性

​ 上面我们在运行过程中给实例对象添加了属性,那么我们再创建一个实例对象,能不能直接去调用age属性呢?

In [6]: li = Person("老李")

In [7]: li.age
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-7-683a5751e9b0> in <module>()
----> 1 li.age

AttributeError: 'Person' object has no attribute 'age'

​ 我们发现在实例对象li中没有age这个属性,我么想给所有的Person的实例都加上age属性怎么办?答案就是直接给Person添加属性:


In [8]: Person.age = 0

In [9]: li = Person("老李")

In [10]: li.age
Out[10]: 0
4、运行过程中给类添加方法

​ 首先我们定义一个函数:

def print_msg(self):
    print("姓名:%s,年龄:%d" % (self.name, self.age))

​ 上面我们直接给对象绑定属性,直接实例对象.属性 = 值,那给实例对象添加方法呢?可不可以直接实例对象.方法名 = 方法名呢?

wang.print_mag = print_msg
# 会直接产生异常 AttributeError: 'Person' object has no attribute 'print_msg'
# 是因为在调print_msg方法的时候,self并没有参数

​ 那么我们怎么做才能添加呢?

import types
wang.print_msg = types.MethodType(print_msg, wang)
5、添加类方法
@classmethod
def p_class(cls):
    cls.num = 100

# 动态添加类方法
Person.p_class = p_class
Person.p_class()
print(Person.num)
6、添加静态方法
@staticmethod
def run():
    print("-----------run----------")

# 动态添加静态方法
Person.run = run
li.run()
7、__slots__
  • 动态语言:可以再运行过程中,修改代码

  • 静态语言:编译时已经确定好代码,运行过程中不能修改

    如果我们想要限制实例的属性,怎么办?

    比如,只允许对Person添加name、age、sex属性。

    在Python中为了达到限制的目的,Python是允许在定义class的时候,定义一个特殊的__slots__,来限制class实例能添加的属性

    In [12]: class Person(object):
     ....:     __slots__ = ("name", "age", "sex")
     ....:     
    
    In [13]: p = Person()
    
    In [14]: p.name = "老王"
    
    In [15]: p.age = 18
    
    In [16]: p.sex = "男"
    
    In [17]: p.address = "隔壁"
    <hr />
    
    AttributeError                            Traceback (most recent call last)
    <ipython-input-17-c00075f138fc> in <module>()
    ----> 1 p.address = "隔壁"
    
    AttributeError: 'Person' object has no attribute 'address'
    

注意点:

  • 使用__slots__要注意,__slots__定义的属性仅对当前类实例起作用,对继承的子类是不起作用的
东方财富API隐藏技巧:这样获取分时均价线数据更稳定(避坑指南) 本文深入解析东方财富API获取股票分时数据,特别是分时均价线的实战技巧与避坑指南。针对高频调用中常见的请求失败、数据错位及IP限制等问题,提供了从接口参数深层解析、稳健请求与错误处理机制,到系统优化与数据校验的全流程解决方案,帮助开发者构建稳定可靠的数据采集系统。 阅读详情

相关推荐

手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南

本文提供了手动安装SeuratData包中pbmc3k数据集的详细步骤与避坑指南。针对国内用户网络不稳定导致自动下载失败的问题,文章核心介绍了如何从错误信息中获取下载链接,使用浏览器或下载工具完成手动下载,并通过指定本地文件路径和参数在R中成功安装。该方法同样适用于SeuratData包中的其他数据集,是单细胞分析入门的必备生存技能。

weixin_29054399的博客 185

动态语言和静态语言的区别(如python与c++)

概念 动态语言(弱类型语言)是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。比如Php、Asp、JavaScript、Python、Perl等等。 var s ="hello"; var i = 0; var b = true; 静态语言(强类型语言)是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。比如Java、C、C++、C#等。 String s="hello"; //String 类型的变量 boolean

s11show_163的博客 1万+

AI Agent ReAct架构设计模型剖析

ReAct通过"思考-行动-观察"循环运作:智能体先进行自然语言推理,再调用外部工具执行行动,观察结果后继续推理直至解决问题。这种架构提高了透明度和准确性,减少幻觉风险,使LLM能主动分解任务并利用外部数据源。实现关键在于精心设计的提示模板,引导LLM按结构化格式响应,而非依赖模型固有能力。

weixin_43939320的博客 1250

动态类型语言和静态类型语言的区别

动态类型语言和静态类型语言的区别

岳来的博客 4966

OSNet代码解析(普通卷积,分组卷积,深度可分离卷积,OSblock组成)

文章目录普通卷积和分组卷积普通卷积和深度可分离卷积用深度可分离卷积(LightConv3x3)代替普通卷积(Conv3x3)减少参数OSBlock (bottleneck)OSNet OSNet之所以轻量(2.2M)在于网络浅,使用深度可分离卷积代替传统卷积,但是很有效 普通卷积和分组卷积 所谓分组卷积,就是右图的input features分成一组一组,如上图groups=3,那么输入的特征分成3组,每组有12/3=4的通道的特征参与输出。然后根据输出通道的维度,得到每组的输入特征要计算两次(6/3=2

Mr_DaYang的博客 9802

SecureCRT串口连接保姆级教程:从驱动安装到波特率设置(附常见问题解决)

本文提供SecureCRT串口连接的保姆级教程,涵盖从USB转串口驱动安装、端口识别到波特率等核心参数设置的完整流程。针对连接失败、乱码、键盘输入无响应等高频问题,给出了深度排查与解决方案,帮助网络与嵌入式开发新手快速掌握串口调试技能。

weixin_29281941的博客 433

未来几年动态语言谁将成为主流

什么是动态语言呢?  可以简单的理解为直接被解释执行的语言称为动态语言。而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。  当前静态语言有:java、C/C++、C#、DELPHI、VB等。  动态语言有:asp、php、cgi、lisp、Perl、python,Smalltalk、Ruby等。  对于动态语言,每个人心中都有自己的排序,各自喜好不同。但是对于动态语言越来越受重视是很

辛佳雨的专栏 1万+

《AI Coding手册:Claude Code、OpenAI Codex、OpenClaw深度解析与实战指南》

AI编码技术经历了从简单规则匹配到深度神经网络,再到当前智能体(Agent)架构的范式转变。第一阶段:静态代码补全(2010-2018)早期工具如IntelliSense、Emmet基于语法分析和固定模板提供代码提示。这类系统依赖预定义规则,缺乏语义理解能力,仅能处理局部代码片段。第二阶段:统计语言模型(2018-2020)以GPT-2、TabNine为代表,引入基于大规模代码训练的神经语言模型。

AI天才研究院 1036

什么是动态语言,编程里那些事动态语言

动态语言的定义:动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用。它是一类 在 运行时可以改变其结构的语言 :例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言目前非常具有活力。众所周知的 ECMAScript ( JavaScript )便是一个动态语言,除此之外如 PHP 、 R...

WBerica的博客 5714

1、使用Spark SQL查询Databricks:全面指南

本博客全面介绍了如何使用Spark SQL在Databricks平台上进行高效的数据查询与分析。内容涵盖SQL基础操作、数据过滤、复杂查询技巧、简单与高级计算、数据聚合、日期处理等核心主题,适合数据分析师、开发人员及SQL学习者。通过逐步讲解和实用示例,帮助读者掌握从入门到高级的SQL技能,并提供学习路径建议和免费代码资源,助力实际数据分析工作。

redis7keeper的博客 91

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

864

计算机基础小记-动态语言、静态语言、脚本语言

动态语言(Dynamic Language)和静态语言(Static Language)是编程语言的两种主要类型,它们在语言设计和代码执行时有着不同的特点。

qq_40140808的博客 1583

工业视觉实战:用摄像头+AI高精度测量钢板尺寸(附深度分析)

摘要: 钢铁制造业正加速采用基于摄像头与深度学习的视觉测量技术,以取代传统人工测量,实现钢板长、宽、高(厚)的非接触、高精度在线检测。核心方案包括单目视觉(低成本但受限于变形)、双目/多目立体视觉(可精确测量变形钢板)及3D激光扫描(微米级精度)。系统精度受硬件(相机分辨率、镜头)、算法(亚像素技术)及环境稳定性共同影响,综合精度可达±0.1mm。实战中需重点解决热膨胀(需红外测温实时补偿)和钢板变形(必须采用三维方案)两大挑战,并通过工程化设计(散热、防振)确保系统可靠运行。该技术需融合光学、机械与算法,

数字人生 391

动态语言之三:语言的动态性

转 [url]http://blog.youkuaiyun.com/hongbomin/article/details/6979314[/url] 3.1 语言的动态特性 介绍动态语言之前,首先介绍一下语言的动态特性,并引出动态语言的定义。 语言的动态特性表示语言具有在运行时确定绑定关系的性质。实际上,“静态”是一个相对的概念,任何程序设计语言都可以看作具有某种程度的动态特性。一个变量能够在...

ooaer的专栏 1690

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

什么是动态语言和静态语言?静态语言动态语言的区别

定义  通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。 还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。 动态类型语言:在运行期间检查数据的类型的语言。用这类语言编程,不会给变量指定类型,而是在附值时得到数据类

优快云_Liuzongyi的博客 2532

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

c 是动态语言吗,讨论:关于动态语言的动态性

正文对于做 iOS 的同行们来说,动态语言这个词再熟悉不过。那么到底什么是动态语言呢?到底动态语言和静态语言有什么区别呢?维基百科说:Dynamic programming language, in computer science, is a class of high-level programming languages which, at runtime, execute many com...

weixin_39719077的博客 448

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

动态语言,静态语言的区别

定义  通常我们所说的动态语言、静态语言指 动态类型语言(Dynamically Typed Language)和 静态类型语言Statically Typed Language)。 还有一个 Dynamic Programming Language (动态编程语言),静态编程语言。 动态类型语言:在运行期间检查数据的类型的语言。用这类语言编程,不会给变量指定类型,而是在附值时得到数据类

weixin_39413791的博客 3621

python动态语言的体现_动态语言的特性

什么是动态语言动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。Ruby、Python、javaScript等属于动态语言,C、C++、Java等属于静态语言。专业名词Dynamic Programming Language (动态语言或动态编程语言)Dynamically Typed Language (动态类型语言)Statically Typ...

weixin_39959615的博客 475

动态语言与静态语言

动态语言也称为脚本语言,是介于标签语言(如HTML,XSLT,VML)和静态语言(如C++、C#、Java,也称编译语言)之间的语言。JavaScript、PHP、Perl、Ruby等都是动态语言。动态语言无需编译,它由解释器动态解释执行,一般来说,动态语言拥有比静态语言更大的灵活性和表达能力。动态语言优势在于灵活,易于开发和学习,劣势在于性能较低。在高性能服务器和并行处理的实现方案里,动态语言的优势掩盖自身的不足。一般来说,完成同样逻辑功能的程序,使用Ruby或Python之类的动态语言所需的代码量往往.

xmh_sxh_1314的博客 1898

动态语言,静态语言,以及OC的语言类型

动态语言Dynamically Typed Language 例如:ECMAScript(JavaScript)、Ruby、Python、VBScript、php 也叫动态类型定义语言 与静态类型定义相反,一种在执行期间才去发现数据类型的语言, 动态语言是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。 动态

匪夷所思的专栏 2080

c语言动态,C语言的动态调用

我们都认为C语言是一种非常静态的语言,几乎没有什么动态特性,同时往往在编译器就决定了整个运行方式,运行期是很难改变其运行状态的。其实C语言也是可以比较动态的,只是由于C语言是一个跨平台兼容语言,每个平台都有不同的实现,其动态化很难统一。这里我们看看在AArch64平台上的动态化实现。其他语言的动态化脚本语言是非常具有动态特性的,其中典型的js就可以如下方式动态调用方法。function hello...

weixin_36461619的博客 943

动态语言和静态语言

动态语言:一类在运行时可以根据某些条件改变自身结构的语言。主要动态语言:C#、Javascript、PHP、python、Erlang. 静态语言:运行时结构不可变的语言。Java、C、C++。 动态类型语言和静态类型语言 1、动态类型语言 动态类型语言和动态语言是完全不同的两个概念。 动态类型语言:是指在运行期间才去做数据类型检查的语言,说的是数据类型, 动态语言:说的是运行是...

weixin_42137840的博客 1523

什么是动态语言?

什么是动态语言呢? 可以简单的理解为直接被解释执行的语言称为动态语言。而需要编译环境将程序转换为其它的编码再执行的语言称为静态语言。  当前静态语言有:Java、C/C++、C#、Delphi、VB等。  动态语言有:ASP、PHP、CGI、lisp、Perl、python,Smalltalk、Ruby等。  对于动态语言,每个人心中都有自己的排序,各自喜好不同。但是对于动态语

xuejx的专栏 1397

什么是动态语言

动态语言允许开发者在程序运行时进行更多的操作和修改,比如类型的变化、对象的创建等。这使得编写代码更加灵活和高效,特别适合快速开发和原型设计。然而,这种灵活性也带来了性能的损失,并且可能增加在运行时发现错误的风险。

weixin_49526058的博客 694

说说动态语言

五一长假之前,我跟好几个开发一线的朋友聊技术的发展,突出的一个感觉是大家都在关注动态语言。有的是使用多年,眼见发展态势不错,大有为自己的先见之明扬眉吐气之感,有的则是刚刚使用,仍处在兴奋不已的状态之中,当然也有仍然保持观望态度的,不过即使是最“保守”的,也能够对动态语言表现出尊重。这与两三年前相比,已经是很大的进步。记得两年前我与Python爱好者tangtao合作策划《程序员》的第一个“动态语言

孟岩 3万+
上一篇: Python的set集合
下一篇: Python中的进程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值