mayapython学习笔记(3)变量与数据

文章对比了Python和MEL中的变量处理方式,Python支持动态类型,允许变量实时更改类型,但需要进行类型转换。MEL变量则是静态类型。Python使用type()函数检查变量类型,通过引用计数和垃圾回收管理内存。不可变对象如字符串和数字在赋新值时会创建新对象,而可变对象如列表则不会。
摘要由CSDN通过智能技术生成

1.Python是一种强大的动态类型语言,可以实时更改任意Python变量类型,只需要直接赋值即可。

contents='toys';        此时变量表示为字符串类型

contents=6;              此时变量为int类型

python是强类型,无法轻松混合使用不同类型的变量,有时则需要转换类型。例如:

contents =6;              此时变量为int类型

print('there are'+str(contents)+'things in the box');            str()将数值转化为string类型

python提供了内置函数type(),允许随时确定变量类型。

type(contents);

 2.MEL中的变量

MEL面板中输入

$contents ="toys";
print($contents + " in the box");

输出为:toys in the box

MEL虽然不需要声明类型变量,但由于$contents是静态类型,所以无法变为数字。

印证:

$contents =6;

print("there are "+$contents+" things in the box"); 

输出为

$contents =6;

print($contents+10); 

输出为 

 MEL隐式假定加法运算后面数字10为字符串。

3.关键字

查看关键字代码:

import keyword;

 for kw in keyword.kwlist:print(kw);

打印关键字列表用于各种目的,包括定义新对象类型和控制程序流。

4.python数据模型:

为了提高效率静态类型的语言为不同类型的变量分配了特定数量的内存。由于此内存数量是提前指定的,因此无法为名称分配一个新类型。python则允许你随时更改变量类型。

而在python中变量只是指向数据的名称。所有数据均为对象,每个对象都有一个标识符、类型、和值。

·对象的标识符描述内存地址。

·对象类型(本身是一个对象)描述所引用的数据类型。

·对象的值描述其数据的实际内容。

创建新变量分配值时,变量指向具有这三个值的对象名称。

当变量是整数和当变量是字符串时:

var=5;
print('int id',id(var));
var=str(var);
print('int id',id(var));

输出为

 标识符显示不同地址。

python易变性:

在python中,对象是可变或不可变的。即,可变对象的值可以改变,而不可变对象的值不能改。

元组、字符串、数字都是不可变的。因此为变量分配新整数值时,不是更改变量所指的对象基本值,而是更改指向另一个数据的变量值。

引用计数:

python使用引用计算机机制管理内存。不要求开发人员手动分配和释放内存,当没有引用数据名称时,会将数据作为垃圾回收。

然而此范式则,具有同一赋值的两个不可变变量可能会指向同一数据。

 

 虽然不可变类型指向数据的变量会产生此现象,但可变类型和值相同的内存地址是不同的。

 但如果是将其值附加过去,则依然是相同地址。

 del();

内置函数del(),此函数允许删除变量。注意的是只是删除指向内存地址的名称。如果此地址没有名称指向占用了,python的垃圾收集器才会管理删除这个数据。

list1=[1,2,3];
list2=list1;
del(list1);
print(list2);

输出为

None类型

如果没有必要分配内存,只需要占用名字初始化名称,则可以使用他。

例如:var=None;

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值