1. Python变量到底是什么?

  Python和Java中的变量本质不一样,python的变量实质是一个指针 int str,便利贴

  a = 1

  # 1. a贴在1上面

  # 2. 它的过程是先生成对象,然后贴便利贴。

  # 3. is 是指的标签贴是否一样。

  a = 1

  b = 1

  这个是一样,用的是小整数的内部inter机制的内部优化。

  == 用的是__eq__这个魔法函数。

  # 4. 常用的用法是isinstance或者type() is,这两种是通用的。type实际上是指向了这个对象的。

2. del语句和垃圾回收的关系:

  py中的垃圾回收采用的是引用计数。

# a =
# b = a
# del a # 引用计数器减去1,等于0的时候py会回收。 a = object()
b = a
del a
print(b) # b可以打印,a打印不出来了
print(a) # C:\Python37\python.exe F:/QUANT/练习/chapter01/type_object_class.py
# Traceback (most recent call last):
# File "F:/QUANT/练习/chapter01/type_object_class.py", line , in <module>
# print(a)
# NameError: name 'a' is not defined
# <object object at 0x000002909F4AAA70>
#
# Process finished with exit code class A:
del __del__(self):
pass

  记住:对应的魔法函数是__del__

3. 默认空的list的可变,一个景点的参数传递问题。

def add(a,b):
a += b
return a
class Company:
def __init__(self,name,staffs=[]):
self.name = name
self.staffs = staffs def add(self,staff_name):
self.staffs.append(staff_name) def remove(self,staff_name):
self.staffs.remove(staff_name) if __name__ == '__main__':
# a =
# b =
# c = add(a,b)
# print(c)
# print(a,b)
#
# # a = [,]
# b = [,]
# c = add(a,b)
# print(c)
# print(a,b)
# [, , , ]
# [, , , ][, ] # a = (,)
# b = (,)
# c = add(a,b)
# print(c)
# print(a,b)
# (, , , )
# (, ) (, ) com1 = Company("con1",["bobby1","bobby2"])
com1.add("bobby3")
com1.remove("bobby1")
print(com1.staffs)
# ['bobby2', 'bobby3'] com2 = Company("com2")
com2.add("bobby")
print(com2.staffs)
# ['bobby'] com3 = Company("com3")
com3.add("bobby5")
print(com2.staffs,com3.staffs)
# ['bobby', 'bobby5']['bobby', 'bobby5'] print(com2.staffs is com3.staffs)
# True # 这个原因是运用了一个可变对象=[]
print(Company.__init__.__defaults__)

  记住:在类中可变对象的话容易造成错误的,把a就行修改掉了。

  记住:其实这里就是引用参数的问题。引用参数是用可变对象来实现的。

Python说文解字_杂谈08的更多相关文章

  1. Python说文解字_杂谈05

    1. isinstance和type: is和==符号,is指的是内存地址,是不是一个对象,ID知否相同 集成链 class A: pass class B(A): pass b = B() prin ...

  2. Python说文解字_杂谈09

    1. 元类编程代码分析: import numbers class Field: pass class IntField(Field): # 数据描述符: # 初始化 def __init__(sel ...

  3. Python说文解字_杂谈07

    1. 深入dict from collections.abc import Mapping,MutableMapping # dict 属于mapping类型 a = {} print(isinsta ...

  4. Python说文解字_杂谈01

    1. Python在Ubuntu下面下载Python 2. 安装依赖包 sudo apt-get update sudo apt-get install build-essential python- ...

  5. Python说文解字_杂谈06

    1. 序列类型的分类: 容器类型:list.tuple,deque 扁平序列:str.bytes.bytearray.array.array 可变序列:list.dequte.bytearray.ar ...

  6. Python说文解字_杂谈04

    1. 鸭子类型: 当你看到一只鸟走来像鸭子,游泳起来像鸭子,叫起来也像鸭子,他么他就可以叫做鸭子.任何可迭代的对象.一样的方法,可以用可迭代的话,就可以迭代的组合打印.__getitem__可以塞到任 ...

  7. Python说文解字_杂谈03

    1. 我们从前面的知识得到,所有的类都要继承自object这个基类(超类),另外我们知道“继承”可以继承类的属性和方法.我们起始通过type创建类的时候,自然而然的也会从ojbect继承他的一些属性和 ...

  8. Python说文解字_杂谈02

    1. Py中三个中啊哟的概念type.object和class的关系. type生成了int生成了1 type->class->obj type用来生成类对象的 object是最顶层的基类 ...

  9. Python说文解字_详解元类

    1.深入理解一切接对象: 1.1 什么是类和对象? 首先明白元类之前要明白什么叫做类.类是面向对象object oriented programming的重要概念.在面向对象中类和对象是最基本的两个概 ...

随机推荐

  1. fiddler 限速方法

    1.使用的软件下载地址: \\192.168.100.2\共享软件\开发常用\flash_team\工作软件\fiddler2setup.exe 2.注意事项 测试是,在ie浏览器环境下测试 3.软件 ...

  2. NRF52840与NRF52832的性能区别

    蓝牙版本的不断更新,大部分客户慢慢都向往着蓝牙5.0.当然对于前不久NORDIC刚出的蓝牙5.0 NRF52840,很多人都还不是很了解.NRF52840可以说是NRF52832的超强升级版,虽然同样 ...

  3. [LeetCode] 931. Minimum Falling Path Sum 下降路径最小和

    Given a square array of integers A, we want the minimum sum of a falling path through A. A falling p ...

  4. 第二阶段scrum-9

    1.整个团队的任务量: 2.任务看板: 会议照片: 产品状态: 消息收发在制作

  5. php srand()和rand()

    1.rand()函数 作用:返回随机整数 用法:rand(min,max)  min和max规定随机数产生的范围,可以省略不写,不写时rand() 返回 0 到 RAND_MAX 之间的伪随机整数. ...

  6. 实验吧-密码学-他的情书(进一步了解js代码调试和console.log)

    打开网站,在白色背景下的任一点上点击鼠标,白色部分都会消失(包括password输入框),那么就无法输入. 查看源码,发现是明显的从源码解决问题. 火狐F12查看器查看源码(如果是简单的操作,可以vi ...

  7. js 工厂设计模式

    class Product{ constructor(name){ this.name = name; } init(){ alert(this.name); } } function Creator ...

  8. taro编译的时候报 exports.pRimraf = util_1.promisify(rimraf); 错误

    C:\Users\1\AppData\Roaming\npm\node_modules\@tarojs\cli\dist\h5\helper.js:8 exports.pRimraf = util_1 ...

  9. ESP32-DOWDQ6蓝牙&Wifi 两个可单独控制的 CPU 内核

    乐鑫(Espressif Systems)研发设计IoT业内集成度最高.性能最稳定.功耗最低的无线系统级芯片. ESP32-D0WDQ6集成无线2.4 GHz Wi-Fi和蓝牙双模的单芯片方案,具有两 ...

  10. .NET CORE AutoMapper使用

    1.通过nuget安装AutoMapper,版本是7.0.1, 安装AutoMapper.Extensions.Microsoft.DependencyInjection  版本是4.0.1 不是以上 ...