1. Python在Ubuntu下面下载Python

2. 安装依赖包

  sudo apt-get update

  sudo apt-get install build-essential python-dev python-setuptools python-pip python-smbus

  sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev

  sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev

  sudo apt-get install libssl-dev openssl

  sudo apt-get install libffi-dev

3. 把Python3.7 安装到/usr/local 目录

  mkdir tmp

  tar xpvf python3.7.0.tar.xz -C ./tmp

  cd /temp/python3.7.0/./configure -- prefix=/usr/local

  make

  make altinstall

4. 更改.usr/bin/python连接

  ln -s/usr/local/bin/python3.7 /usr/bin/python37

  ln -s/usr/local/bin/pip3.7 /usr/bin/pip37

5. python中一切皆对象。

  Python比其他编程语言的面向对象更加彻底。class也是对象,函数也是对象(Java当中不是),python语言的动态性非常强。是现在面向对象语言中更加彻底的OOP编程语言。类和函数也是对象,属于python的一等公民。类可以理解成一个模板,模板也是一个对象,模板对象。类是一个对象,是可以动态修改这个属性的。

  赋值给一个变量;可以添加到集合对象中;可以作为参数传递给函数;可以当做函数的返回值去执行这个返回的函数

def ask(name="bobby"):
print(name) class Person:
def __iter__(self):
print("bobby1") def print_type(item):
print(type(item)) def decorator_func():
print("dec start")
return ask # 返回ask函数去执行这个函数,这个不是函数的嵌套,是函数的返回。基于装饰器实现的一种原理。 # my_ask = decorator_func()
# my_ask("tom") # obj_list = []
# obj_list.append(ask)
# obj_list.append(Person)
# for item in obj_list:
# print(item()) # my_func = ask
# my_func("bobby") # my_class = Person
# my_class()

  最难理解的是第四条,return 函数名,就是返回一个函数调用。

  返回即执行!

def decorator_func():
print("dec start") my_ask = decorator_func() #dec start
my_ask # None
print(my_ask) # dec start my_ask1 = decorator_func
my_ask1() # dec start
print(my_ask1()) # None

  如果一个函数或者是一个类,不想直接执行()不用打,如果想立马执行要打上()

  调用即执行!

6. 函数或者类返回的难点:

def funcZero():
print("this funcZero") def func():
print("this func")
return funcZero f = func() # 调用即执行
print(f) # 返回funcZero内存位置

this func
<function funcZero at 0x0000014F0DD0C1E0>

 

  我们发现调用即执行了func函数,第二部分打印了funcZero函数的的内存位置(返回即执行)

def funcZero():
print("this funcZero") def func():
print("this func")
return funcZero f = func()
print(f())
# this func
# this funcZero
# None

  再次加入括号,发现funzero也执行了

  总结:return = 调用即执行,调用即执行=函数在return后展开。

  其实上面的代码就是等于

def funcZero():
print("this funcZero") def func():
print("this func")
return funcZero
# funcZero函在这类展开!
# def funcZero():
# print("this funcZero")

  总结:

  * 如果我们就一个函数

def func():
print("this func")

  直接写函数不打括号

def func():
print("this func") func # 不显式内容
print(func) # <function func at 0x000002B46100C1E0>

  不显式内容,print显式函数的地址

  *如果我们写上括号

def func():
print("this func") func() # this func
print(func()) # this func
# None

  如果我们不写返回值返回为空,写上括号,直接执行函数

  * 如果我们构造一个对象

def func():
print("this func") f = func() # this func
print(f) # None

  执行相同,返回值为空。

  * 如果不写返回值,返回值为空

def func():
print("this func")
return None f = func() # this func
print(f) # None

  

  * 如果返回一个函数,且两个函数都有参数。函数执行第一遍实质性函数体内,执行第二遍是执行返回的函数,可以给予传参。

def funcBack(name):
print("this funcBack {}".format(name)) def func(name):
print("this func {}".format(name))
return funcBack f = func("thomas")
f("Jerry")
# this func thomas
# this funcBack Jerry

  这个观点很重要!

  打印执行过程

def funcBack(name):
print()
print("this funcBack {}".format(name))
print() def func(name):
print()
print("this func {}".format(name))
print()
return funcBack f = func("thomas")
f("Jerry") # this func thomas
# this funcBack Jerry

  

  * 但是函数调用类是不行

class func1:
def __iter__(self,name):
self.name = name
print("Jerry") def func(name):
print()
print("this func {}".format(name))
print()
return func1 f = func("thomas")
f("Jerry")

Traceback (most recent call last):
File "F:/QUANT/练习/chapter01/all_is_object.py", line 13, in <module>
3
f("Jerry")
TypeError: func1() takes no arguments
this func thomas
4

 

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

  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说文解字_杂谈08

    1. Python变量到底是什么? Python和Java中的变量本质不一样,python的变量实质是一个指针 int str,便利贴 a = 1 # 1. a贴在1上面 # 2. 它的过程是先生成对 ...

  4. Python说文解字_杂谈07

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

  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. Redis 详解 (八) 主从复制

    目录 1.修改配置文件 2.设置主从关系 3.测试主从关系 4.哨兵模式 5.主从复制原理 6.主从复制的缺点 前面介绍Redis,我们都在一台服务器上进行操作的,也就是说读和写以及备份操作都是在一台 ...

  2. Oracle SQL触发器

    一.触发器 触发器是一个数据库对象,是一个特殊的过程,当特定的时间发生时隐式地执行.比如在一个表中发生插入.更新或删除的时间,或者 CREATE.ALTER 这样的数据定义语句执行时,触发器会隐式执行 ...

  3. DRF项目之实现用户密码加密保存

    在DRF项目的开发中,我们通过直接使用序列化器保存的用户信息时,用户的密码是被明文保存到数据库中. 代码实现: def create(self, validated_data): '''重写creat ...

  4. hive表字段注释显示乱码问题

    创建了一张hive表,对字段增加了注释,比如comment '注释内容' 之类的,但是在hive client查看时候却是乱码 比如: create table test_ultraedit ( id ...

  5. JavaScript的函数和对象介绍

    一.JavaScript中的函数 1.函数的概述 JavaScript中的函数是一段可执行代码的合集,在需要执行的时候可以在方法名之后添加一对小括号执行方法.是一段可执行的字符串. 2.函数中隐藏的属 ...

  6. Python MySQL Where

    章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...

  7. C# Stream篇(七) -- NetworkStream

    NetworkStream 目录: NetworkStream的作用 简单介绍下TCP/IP 协议和相关层次 简单说明下 TCP和UDP的区别 简单介绍下套接字(Socket)的概念 简单介绍下Tcp ...

  8. UVA - 1001 Say Cheese(奶酪里的老鼠)(flod)

    题意:无限大的奶酪里有n(0<=n<=100)个球形的洞.你的任务是帮助小老鼠A用最短的时间到达小老鼠O所在位置.奶酪里的移动速度为10秒一个单位,但是在洞里可以瞬间移动.洞和洞可以相交. ...

  9. 在Mac上使用docker+sql server+Navicat

    1. 版本:  2. 安装Kubernetes(并不知道安装这个有什么用) git clone https://github.com/maguowei/k8s-docker-desktop-for-m ...

  10. 微信小程序手绘地图实现之《Canvas》

    环境:微信SDK2.9+   + uniapp (可切换直接使用.map.js不限制环境) 正题: 先创建一个地图组件 <template> <view class="cu ...