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就行修改掉了。

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

最新文章

  1. Oracl中sql书写技巧
  2. .保护Express应用程序
  3. iptables基本规则配置(二)
  4. java编程思想-java中的并发(二)
  5. ACM 独木舟上的旅行
  6. SqlSever基础 rtrim函数 除去字符串的右边的空格,左边中间的不管
  7. UIStepper swift
  8. js 对象与函数的区别
  9. Path类型的扩展方法 z
  10. java.util.zip压缩打包文件总结二: ZIP解压技术
  11. Hibernate 使用HQL的 in 时要注意判断in的值(list)是否包含数据
  12. compile libvirt
  13. 保障MySQL安全的14个最佳方法
  14. java中的URL InetAddress类
  15. Mac上安装openCV(Java版本)
  16. 数据操纵:SELECT, INSERT, UPDATE, DELETE
  17. oracle使用数据泵进行数据的导入导出
  18. EF code first 迁移问题
  19. python记录_day07
  20. Hbase 学习(八) 使用MapReduce

热门文章

  1. 端口通不通 telnet wget ssh
  2. PlayJava SpringMVC与Struts2杂谈
  3. 《ES6标准入门》(阮一峰)--2.let 和 const 命令
  4. 转载:Nginx做反向代理和负载均衡时“X-Forwarded-For”信息头的处理
  5. RFX2401C与RFX2402E的区别
  6. Ubuntu 安装VirtualBox 虚拟机
  7. 手把手教你用Python实现“坦克大战”,附详细代码!
  8. 多线程开发之NSThrea
  9. 吴裕雄--天生自然 JAVASCRIPT开发学习:数据类型
  10. ACwing算法基础课听课笔记(第一章,基础算法二)(差分)