Python学习笔记--Day0605

# python内部会维持一个数组,范围为[-5,256]
# is是获取对象的id进行比较,而==可能会被重载,is效率高于==
# ==判断对象间的值是否相等,而is判断对象标识是否相等,即是否指向同一内存地址
# import copy
#
# # a = -5
# # b = -5
# # print(a is b)
# c = 259
# d = 259
# print(c is d)  # True
# dd = [[1, 2], (3, 4)]
# e = copy.deepcopy(dd)
# print(e is dd)  # False
# print(e == dd)  # True


# 值传递 or参数传递
# 所谓值传递,通常就是拷贝参数的值,然后传递给函数里的新变量。这样,原变量和新变量之间互相独立,互不影响。
# 所谓引用传递,通常是指把参数的引用传给新的变量,这样,原变量和新变量就会指向同一块内存地址。
# 如果改变了其中任何一个变量的值,那么另外一个变量也会相应地随之改变。

# Python中:
# Python的所有的数据类型都是对象
# 变量的赋值,只是表示让变量指向了某个对象,并不表示拷贝对象给变量;
# 而一个对象,可以被多个变量所指向。可变对象(列表,字典,集合等等)的改变,会影响所有指向该对象的变量。
# 对于不可变对象(字符串、整型、元组等等),所有指向该对象的变量的值总是一样的,也不会改变。
# 但是通过某些操作(+= 等等)更新不可变对象的值时,会返回一个新的对象。变量可以被删除,但是对象无法被删除。

# Python 中参数的传递既不是值传递,也不是引用传递,而是赋值传递,或者是叫对象的引用传递。
# 需要注意的是,这里的赋值或对象的引用传递,不是指向一个具体的内存地址,而是指向一个具体的对象。


# 生成器写法
# 生成器的概念应运而生,在你调用 next() 函数的时候,才会生成下一个变量。
# 生成器在 Python 的写法是用小括号括起来,(i for i in range(100000000)),即初始化了一个生成器。

  

posted @ 2021-06-06 15:18  菜鸡要加油  阅读(7)  评论(0编辑  收藏  举报