20180714学习日报-常量、变量

1.常量
常量是指一旦初始化后就不能修改的固定值
1)python并没有定义常量的保留字
2)python是一门功能强大的语言,可以自己声明一个常量类来实现常量的功能

声明一个常量类:
class _const(object):
class ConstError(PermissionError): pass
def setattr(self, name, value):
if name in self.dict.keys():
raise self.ConstError( “Can’t rebind const(%s)” % name)
self.dict[name] = value

def __delattr__(self, name):
    if name in self.__dict__:
        raise self.ConstError("Can't unbind const(%s)" % name)
    raise NameError(name)

import sys
sys.modules[name] = _const()

解析该代码:
该类定义了一个方法setattr(),和一个异常ConstError,ConstError类继承自类PermissionError。通过调用类自带的字典dict,判断定义的常量是否包含在字典中。如果字典中包含此变量,将抛出异常,否则,给新创建的常量赋值。
最后两行代码的作用是把const类注册到sys.modules这个全局字典中。

声明后的使用:
constant = _const()
constant.value = 3 #value常量值3
constant.maxVal = 15 #maxVal 常量值15
print(constant.value) #输出3
print(constant.maxVal) #输出15

若再对constant.value赋值:constant.value = 4

报错如下:

—-> 7 raise self.ConstError( “Can’t rebind const(%s)” % name)
8 self.dict[name] = value
9

ConstError: Can’t rebind const(value)
常量值不可更改。则constant.value和constant.maxVal就可作为常量使用了。

2.bool()
bool() 函数用于将给定参数转换为布尔类型,如果没有参数,返回 False
bool 是int的子类
返回值
返回 Ture 或 False
举例:

bool(1)
True
bool(0)
False
bool(”)
False
bool(’ ‘)
True
bool(‘a’)
True
bool(None)
False

3.删除变量

a = 5
a
5
del a
a
Traceback (most recent call last):
File “”, line 1, in
NameError: name ‘a’ is not defined

4.判断从什么时候开始,值相同时,内存地址会不一样

for i in range(0,270):
a = i + 1
b = i + 1
if id(a) != id(b):
print(i+1)
break
执行结果:
257

在cmd下执行:

a = 255
b = 255
id(a)
491057904
id(b)
491057904
a = 257
b = 257
id(a)
26286304
id(b)
26286176
a = 256
b = 256
id(a)
491057920
id(b)
491057920

5.变量
1)变量就是可以改变的量
2)变量是存储在内存中的值。意味在创建变量时会在内存中开辟一个空间。
3)根据一个变量的数据类型,解释器分配内存,并决定什么数据可以被存储在内存中。因此,通过分配不同的数据类型的变量,你可以存储整数,小数或字符在这些变量中。
4)python中的变量不需要提前声明,变量的赋值操作既是变量的声明也是变量的定义过程。
5)每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。
6)每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建

猜你喜欢

转载自blog.csdn.net/yan_jin_feng/article/details/82596730
今日推荐