Python说文解字_杂谈08
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的更多相关文章
- Python说文解字_杂谈05
1. isinstance和type: is和==符号,is指的是内存地址,是不是一个对象,ID知否相同 集成链 class A: pass class B(A): pass b = B() prin ...
- Python说文解字_杂谈09
1. 元类编程代码分析: import numbers class Field: pass class IntField(Field): # 数据描述符: # 初始化 def __init__(sel ...
- Python说文解字_杂谈07
1. 深入dict from collections.abc import Mapping,MutableMapping # dict 属于mapping类型 a = {} print(isinsta ...
- Python说文解字_杂谈01
1. Python在Ubuntu下面下载Python 2. 安装依赖包 sudo apt-get update sudo apt-get install build-essential python- ...
- Python说文解字_杂谈06
1. 序列类型的分类: 容器类型:list.tuple,deque 扁平序列:str.bytes.bytearray.array.array 可变序列:list.dequte.bytearray.ar ...
- Python说文解字_杂谈04
1. 鸭子类型: 当你看到一只鸟走来像鸭子,游泳起来像鸭子,叫起来也像鸭子,他么他就可以叫做鸭子.任何可迭代的对象.一样的方法,可以用可迭代的话,就可以迭代的组合打印.__getitem__可以塞到任 ...
- Python说文解字_杂谈03
1. 我们从前面的知识得到,所有的类都要继承自object这个基类(超类),另外我们知道“继承”可以继承类的属性和方法.我们起始通过type创建类的时候,自然而然的也会从ojbect继承他的一些属性和 ...
- Python说文解字_杂谈02
1. Py中三个中啊哟的概念type.object和class的关系. type生成了int生成了1 type->class->obj type用来生成类对象的 object是最顶层的基类 ...
- Python说文解字_详解元类
1.深入理解一切接对象: 1.1 什么是类和对象? 首先明白元类之前要明白什么叫做类.类是面向对象object oriented programming的重要概念.在面向对象中类和对象是最基本的两个概 ...
随机推荐
- 虚拟 DOM 到底是什么?
虚拟 DOM 到底是什么? 作者:wangshengliang 注意:由于文章太长,对文章有删减,但是不会影响整体阅读 是什么? 虚拟 DOM (Virtual DOM )这个概念相信大家都不陌生,从 ...
- JAVA中添加jar包
右键点击工程文件,选择构建路径>添加外部归档.选择包的路径即可
- spring boot 实战教程
二八法则 - get more with less Java.spring经过多年的发展,各种技术纷繁芜杂,初学者往往不知道该从何下手.其实开发技术的世界也符合二八法则,80%的场景中只有20%的技术 ...
- RabbitMQ系列文章
详解 RabbitMQ 管理界面解析框架 (一) RabbitMQ系列(二)深入了解RabbitMQ工作原理及简单使用 RabbitMQ windows安装步骤 RabbitMQ管理页面各种属性详解 ...
- linux项目,项目报错,排查
今天在遇到以前部署的项目突然没有数据了,然后就去服务器看了一下,打印日志发现报错了,现在我是一脸懵逼,因为不知道怎么排查 然后同事告诉说先看报错的原因,然后再去找认识的类,我打码的都是一些认识的 然后 ...
- Django配置日志
在settings里配置 # 日志配置 LOGGING = { # 是python的版本 'version': 1, # 是否禁用 'disable_existing_loggers': False, ...
- ES6中字符串的新增方法梳理
1.String.fromCodePoint(); String,fromCodePoint()方法可以认为是对String.fromCharCode()方法的扩展,这两个方法的共同点在于都是用于Un ...
- 中国移动携手华为百度展示5G应用,实现8K视频传输
在今日举行的 2019 年百度云智峰会上,中国移动携手华为和百度,首次展示基于 SA 架构的 5G Vertical LAN (行业局域网)技术,承载 8K 实时会议系统,助力企业云办公.该技术可为合 ...
- C语言-存储类&作用域&生命周期&链接属性
1.概念解析(1)存储类 a.存储类就是存储类型,也就是描述C语言变量在何种地方存储. b.内存有多种管理办法:栈.堆.数据段.bss段..text段......一个变量的存储类属性就是描述这个变量存 ...
- zabbix_agent_win
http://mayulin.blog.51cto.com/1628315/514447/ http://www.cnblogs.com/likehua/p/3968689.html 先下载win客户 ...