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. 怎么更改Rstudio中的默认目录

    方法一. 每次启动Rstudio之后,执行代码 setwd("F:/R/R_data") 默认目录就会修改为双引号内的位置路径. 方法二. 对Rstudio进行设置一次即可. ①点 ...

  2. 移动端触屏click点击事件延迟问题,以及tap的解决方案

    在移动端 触屏click事件虽然也会响应,但是总感觉是有延迟,一直听说click事件在手机上有200~300毫秒的延迟问题,亲自测了一下,在pc端模拟手机的话是测不出来的,但是用手机测试时发现延迟非常 ...

  3. Vue.js(24)之 弹窗组件封装

    同事封装了一个弹窗组件,觉得还不错,直接拿来用了: gif图展示: 弹框组件代码: <template> <transition name="confirm-fade&qu ...

  4. 新手学Java,有哪些入门知识点?

    很多小伙伴们在刚接触Java的时候,会有些迷茫,不知道该从哪里入手,不管是做前端还是后端,程序员都会用到JAVA,那该掌握哪些必要的基础知识呢.今天就跟大家分享新手学Java,有哪些入门知识点? 下面 ...

  5. 三、jsx简化教程

    1)使用 JSX 的好处 1.提供更加语意化且易懂的标签 与html对比 <!--HTML写法--> <form class="messageBox"> & ...

  6. springboot - 映射HTTP Response Status Codes 到 静态 HTML页面

    1.总览 2.代码 1).pom.xml <dependencies> <dependency> <groupId>org.springframework.boot ...

  7. 【剑指Offer】面试题09. 用两个栈实现队列

    题目 用两个栈实现一个队列.队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能.(若队列中没有元素,delete ...

  8. c++ opencv 入门

    //类型定义 CvPoint point(2, 3); CvPoint2D32f point1(2, 3); CvPoint3D32f point2(2, 3); CvSize size(2, 3); ...

  9. 用Python复制文件的9个方法(转)

    转自:https://zhuanlan.zhihu.com/p/35725217 用Python复制文件的9个方法 Python 中有许多“开盖即食”的模块(比如 os,subprocess 和 sh ...

  10. 18 react react-redux 的编写 TodoList

    1. 安装 react-redux yarn add react-redux 2. react-redux 编写 TodoList 使所有子组件 都能使用 store #index.js import ...