![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
Python
时空无限
为信仰而生
展开
-
流畅的python系列:装饰器
然后, clock 函数会返回 clocked 函数, Python 解释器在背后会把 clocked 赋值给 factorial。次调用 factorial(n), 执行的都是 clocked(n)。所以, 现在 factorial 保存的是 clocked 函数的引用。❸ 返回内部函数, 取代被装饰的函数。的参数, 而且(通常) 返回被装饰的函数本该返回的值, 同时还会做些。这是装饰器的典型行为: 把被装饰的函数替换成新函数, 二者接受相同。(2) 调用原来的 factorial 函数, 保存结果。原创 2023-03-02 18:06:56 · 296 阅读 · 0 评论 -
流畅的python系列:python闭包
实例) 的元素或属性, 并且把那个对象绑定给一个自由变量。体中为 count 赋值了, 这会把 count 变成局部变量。问题是, 当 count 是数字或任何不可变类型时, count += 1 语句的作。如果尝试重新绑定, 例如 count = count + 1, 其实会隐式创建局部。这样, count 就不是自由变量了, 因此不会保存在闭包。1-1没遇到这个问题,因为我们没有给 series 赋值, 我们只是调。量标记为自由变量, 即使在函数中为变量赋予新值了, 也会变成自由变。原创 2023-03-02 17:35:41 · 876 阅读 · 0 评论 -
python3.8安装functions模块报错
重新编译安装python。原创 2022-07-22 17:02:37 · 643 阅读 · 0 评论 -
python distutils
[root@master python]# ll /root/total 942164-rw-------. 1 root root 1260 Jul 21 2021 anaconda-ks.cfg-rw-r--r-- 1 root root 250 Feb 18 16:50 busybox.yaml-rw------- 1 root root 911093248 Feb 17 11:23 centos-qcow2.tar.gz-rw-r--r-- 1 root ro原创 2022-04-28 16:08:38 · 917 阅读 · 0 评论 -
python处理配置文件
比较配置文件有什么不同#!/usr/bin/env pythonimport configparser#service=['es','web','es2mysql','zs_power','bind','mysql','redis','zookeeper','kafka','ogg','mm2','jdbc_connect','hive_connect','kstream','zy','binary','connect','all_node','all_node_vars','all_vars']#原创 2022-04-28 16:05:37 · 2337 阅读 · 0 评论 -
python结合shell自动创建kafka的连接器
cat query_oracle.py #!/usr/bin/env pythonimport cx_Oracleimport sysimport osimport csvimport tracebackuser = "test"passwd = "test"listener = '10.0.2.15:1521/orcl'conn = cx_Oracle.connect(user, passwd, listener)cursor = conn.cursor()sql = "sele原创 2022-04-28 16:04:46 · 338 阅读 · 0 评论 -
python3.10创建虚拟环境报错
报错python3.10 -m venv /opt/flaskError: Command '['/opt/falsk/bin/python3.10', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.解决yum -y install zlib*原创 2022-04-28 16:02:25 · 820 阅读 · 0 评论 -
python魔方方法
add正确代码class Data: def __init__(self,number): self.number = number #注意other和self.number顺序不能乱 def __add__(self,other): return other + self.numberif __name__ == '__main__': number1 = Data(30) number2 = Data(20原创 2022-04-28 16:01:25 · 1501 阅读 · 0 评论 -
python with_metaclass函数
[root@flask ~]# cat metaclass.py#coding: utf-8def with_metaclass(meta, *bases): """Create a base class with a metaclass.""" # This requires a bit of explanation: the basic idea is to make a dummy # metaclass for one level of class instantiati原创 2021-12-27 15:09:14 · 618 阅读 · 0 评论 -
自动部署py脚本
[root@ceph-01 infra]# cat docker_name.py #!/usr/bin/python# -*- coding: utf-8 -*-#import commandsimport subprocessimport socketimport fcntlimport structCMD_HOSTS=''CMD_HOST_NAME = 'hostname'CMD_CONTAINER_NAME = 'docker ps --format "{{.Names}}"'原创 2021-10-14 16:49:09 · 365 阅读 · 0 评论 -
pycharm配置
下载python包python-3.9.7-amd64.exe配置pycharm原创 2021-09-08 10:12:31 · 114 阅读 · 0 评论 -
python追加文件
python2f_time=open('oracle_time.txt','a+') print>>f_time,LIST2python3f_time=open('oracle_time.txt','a+') print(LIST2,file=f_time)原创 2021-07-19 14:30:39 · 104 阅读 · 0 评论 -
Python socket和前端html
html标签功能演示写一段socket代码[root@golang ~]# cat /python/web/socket-server.py #!/usr/local/bin/python3#!coding:utf8import socketsk=socket.socket() #创建 socket 对象sk.bind(('192.168.229.120',90)) sk.listen(5) # 等待客户端连接while 1: conn,addr = sk.accept()#原创 2021-01-19 17:31:13 · 1281 阅读 · 3 评论 -
Python django 1.11.7
安装虚拟环境工具yum install python-virtualenv创建虚拟环境virtualenv -p /usr/local/bin/python3 django3cd django/进入虚拟环境source bin/activatepip安装djangopip3 install django==1.11.7 -i https://mirrors.aliyun.com/simple(django3) [root@golang myproject]# django-admin原创 2021-01-18 14:22:18 · 411 阅读 · 1 评论 -
Python Django 3.1.5
说明:所有操作均在CentOS7的Python虚拟环境操作,怎么搭建Python虚拟环境,请看我的另外一篇博文Python虚拟环境搭建pip安装django(django) [root@golang opt]# pip3 install django -i https://mirrors.aliyun.com/simple(django) [root@golang HelloDjango]# django-admin --version3.1.5创建一个django项目django-admi原创 2021-01-18 09:40:55 · 683 阅读 · 1 评论 -
Python虚拟环境搭建
安装虚拟环境工具yum install python-virtualenv创建虚拟环境virtualenv -p /usr/local/bin/python3 djangocd django/进入虚拟环境source bin/activate原创 2021-01-14 15:04:57 · 103 阅读 · 0 评论 -
Python线程
Python线程简介Python通过两个标准库threadhethreading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。threading模块提供的其他方法:threading.currentThread():返回当前的线程变量。threading.enumerate():返回一个包含正在运行的线程的list。正在运行指线程启动后、结束前,不包括启动前和终止后的线程。threading.activeCount():返回正在运行的线程数量,与len(threadin原创 2021-01-12 13:39:41 · 190 阅读 · 0 评论 -
Python进程间通信
Queue的put方法cat process3.py #!/usr/bin/env python3#coding:utf8from multiprocessing import Queueq=Queue(5)q.put('A')q.put('B')q.put('C')q.put('D')q.put('E')print(q.qsize())q.put('F') #put(),如果queue满了则只能等待,除非有'空地'则添加成功执行发现会卡在q.put(‘F’),,这是因为队原创 2021-01-11 10:53:31 · 425 阅读 · 0 评论 -
Python自定义进程
cat custommulti.py #!/usr/bin/env python3#coding:utf8from multiprocessing import Processimport sysclass MyProcess(Process): def __init__(self,name): super(MyProcess,self).__init__() self.name=name #重写run方法 def run(self): n=原创 2021-01-08 15:59:49 · 279 阅读 · 0 评论 -
Python 进程方法
cat multi.py #!/usr/bin/env python3#coding:utf8from multiprocessing import Processfrom time import sleepdef task1(): while True: sleep(1) print('这是任务1')def task2(): while True: sleep(1) print('这是任务2')if __name__ == '原创 2021-01-08 15:11:36 · 184 阅读 · 0 评论 -
Python模块
模块在python中,模块是代码组织的一种方式,把功能相近的函数放到一个文件中,一个文件(.py)就是一个模块(module),模块名就是文件名去掉后缀.py。这样做的好处是:提高代码的可复用、可维护性,一个模块编写完毕后,可以很方便地在其他项目中导入解决了命名冲突,不同模块中相同的命名不会冲突。模块导入导入模块后,使用模块中的东西使用方法模块名.函数模块名:变量模块名:类自定义模块导入import 方式导入说明:这两个py文件在一个目录下。cat calculate.py #!原创 2020-12-31 17:00:13 · 177 阅读 · 0 评论 -
Python单例
单例简介单例是一种开发模式。单例指单个对象。对象地址空间cat singleton.py #!/usr/bin/env python3#coding:utf8class Student: passs=Student()s1=Student()print(s)print(s1)可以看到这两个对象的地址是不一样的,内存为每个对象分配一个独立的空间。使用单例模式可以让对象使用一个内存地址空间。[root@ceph01 python]# python singleton.py &原创 2020-12-31 13:37:24 · 137 阅读 · 0 评论 -
python对象
类和对象类属性和对象属性当实例化对象的时候,加了新的属性并赋值,会优先使用对象属性(即使类中也有同样的属性),当对象属性没做改变时,使用类属性。类中self的作用类中的cat duixiang3.py #!/usr/bin/env pthon3# -*- coding: UTF-8 -*-class Phone: def call(self): print(self)p=Phone()print(p.call)[root@ceph01 python]# pytho原创 2020-12-31 10:23:31 · 225 阅读 · 0 评论 -
python读取配置文件
python读取配置文件配置文件cat >ini << EOF [db]db_host = 127.0.0.1db_port = 3306db_user = rootdb_pass = roothost_port = 69[concurrent]thread = 10processor = 20[vnc]db_host = 1.1.1.1EOFpython代码cat >config.py<<EOF #!/usr/bin/env py原创 2020-12-30 16:46:21 · 254 阅读 · 0 评论 -
python迭代器
迭代器概念迭代是访问集合元素的一种方式,迭代器是一个可以记住遍历位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束,迭代器只能往前不会后退。可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterablor可迭代的对象可迭代的对象 1、元组 2、列表 3、集合 4、字典 5、字符串 6、生成器判断对象是否可迭代cat isinstance.py #!/usr/bin/env python3#coding:utf8from collections im原创 2020-12-30 16:24:32 · 130 阅读 · 1 评论 -
python 生成器
函数生成器python函数中有yield关键字,函数就变成了生成器。#!/usr/bin/env python3#coding:utf8def fun(): n=0 while True: n+=1 yield ng=fun()print(type(g))print(next(g))python3 g.py <class 'generator'>1案例使用函数生成器打印斐波那契数列。cat fib.py #!/usr/bin/原创 2020-12-30 16:24:17 · 5698 阅读 · 2 评论 -
python配置模块oslo.config
安装oslo.config模块pip install oslo.configpython oslo.config读取配置文件创建代码目录mkdir /python/cinder/复制一个cinder的配置文件cp /etc/cinder/cinder.conf /python/cinder/cat /python/cinder/cinder.conf [keystone_authtoken]memcached_servers = localhost:11211signing_dir原创 2020-12-24 12:58:07 · 2307 阅读 · 0 评论 -
python 2 抽象基类
抽象基类的作用就是,让父类中的方法不可实例化,只能继承。但子类想要继承父类中的方法必须实现该方法,看如下代码。代码cat test.py #/usr/bin/env python#coding:utf8from abc import ABCMeta,abstractmethodclass Fish(): __metaclass__ = ABCMeta @abstractmethod def swim(self): print '游泳'fish = F原创 2020-12-23 17:00:34 · 283 阅读 · 0 评论 -
Python importlib
python importlibOpenStack源代码中有类似代码,所以测试下这个模块的作用。代码结构[root@ceph01 python]# ll总用量 24drwxr-xr-x. 2 root root 6 11月 17 10:13 bak-rw-r--r--. 1 root root 373 12月 23 12:30 call.py-rw-r--r--. 1 root root 323 12月 23 12:34 call.pycdrwxr-xr-x. 3 root roo原创 2020-12-23 14:22:37 · 316 阅读 · 0 评论 -
python调用libvirt API和装饰器应用
环境内核及操作系统版本cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) [root@localhost python]# uname -r3.10.0-957.el7.x86_64python版本python -VPython 2.7.5安装libvirt-pythonpython调用libvirt需要libvirt模块,因此先安装这个模块。yum -y install libvirt-python安装该模原创 2020-11-26 13:49:15 · 1110 阅读 · 0 评论 -
Python之函数装饰器和捕获异常
函数装饰器函数装饰器的语法python有一个特殊的性质不同于其他大多数的编程语言,就是函数本身可以作为一个参数传递给另外一个函数。这样就衍生出了函数装饰器。函数装饰器的语法如下:函数装饰器函数@函数装饰器函数名(注意不带小括号)被装饰函数调用被装饰函数。说明:这里是将被装饰函数作为参数传递给装饰器函数,调用被装饰函数的时候实际上是在调用装饰器函数。装饰器函数的特点1、装饰器函数传入的参数是一个函数。2、装饰器函数内嵌一个函数,并且返回内嵌函数。定义一个装饰器[root@localh原创 2020-11-26 10:16:17 · 638 阅读 · 0 评论 -
python之ssh超级详解
环境操作系统及内核版本[root@ceph01 ssh]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)[root@ceph01 ssh]# uname -aLinux ceph01 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxpython版本[root@ceph01 ss原创 2020-11-19 16:13:12 · 3970 阅读 · 1 评论 -
Python列表方法和循环语句组合
def add(self,*args): list1=[] total=0 for i in args: list1.append(i) for j in range(0,len(list1)): total = total+list1[j] print(len(list1)) print('{}相加元素和为{}'.format([list1],total))add(1,2,3)原创 2020-11-17 11:12:35 · 341 阅读 · 0 评论 -
python项目实战之函数、类和配置文件调用
前言初学python的同学对往往会淹没在纷繁复杂的基础中,不知道学那些基础有什么用,看大型项目的代码的时候往往不知所云。这里就以一个简单的例子来说下大型项目开发的过程。(以后会一直更新)python调用不同文件下的函数甚至调用不同目录下文件的函数是开始写大规模python代码的前提,本文就python调用函数来做下说明暂且就当是个项目吧,叫add加法器项目,麻雀虽小,五脏俱全,以后会逐步增加代码。写好的python项目的目录结构tree ././├── call.py└── class1_t原创 2020-11-16 18:16:31 · 619 阅读 · 0 评论 -
CentOS升级Python详解
第1章 升级python1.1 下载新版本进入 Python下载页面,选择需要的版本。这里,我选择的版本是 3.5.2 。wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz1.2 解压缩下载完成之后,进行解压缩:tar -zxvf Python-3.5.2.tgz1.3 安装配置进入解压缩后的目录,安装配置:cd Python-3.5.2/./configure执行 ./configure 时,如果报错:con原创 2020-08-31 14:15:13 · 4672 阅读 · 0 评论 -
python列表
1定义一个类class Phone: brand='xiaomi' brand='xiaomi' price=4999 type='mate80' def call(self): print('正在打电话') print('留言:',self.note)实例化对象phone1=Phone()phone1.note='wo shi phone1 de note'调用phone1.call()输出正在打电话('\xe7\x95\x9原创 2020-08-27 16:44:33 · 194 阅读 · 0 评论