记一次Nginx升级的不兼容问题 1、当时现象,Nginx一直重启,被kernel杀掉 nginx的error日志有exited on signal 11 2、查看dmesg日志,也是频繁的被kernel杀掉 3、开启进程的coredump ulimit -c unlimnited nginx.conf配置 worker_rlimit_core 500m; working_directory
类和对象是面向对象编程的两个核心概念类类是对一群具有相同特征或者行为的事物的一个通称,是抽象的,不能直接使用特征其实就是一个变量,在类里我们称之为属性行为其实就是一个函数,在类里我们称之为方法类其实是由属性和方法组成的抽象概念对象对象是由类创建出来的一个具体存在,可以直接使用,由哪个类创建出来的对象,就拥有在哪一个类中定义的属性和方法,对象就相当于用图纸制造的飞机,在开发中,应该先有类,在类里定义
importtimedefcal_time(fn):print('我是外部函数,我被调用了!!!')print('fn={}'.format(fn))definner():start=time.time()fn()end=time.time()print('代码耗时:{}'.format(endstart))returninner@cal_time第一件事调用cal_time,第二件事把被装饰的函
Lua模块与包lua模块与包模块类似于一个封装库,从Lua5.1开始,Lua加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以API接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。Lua的模块是由变量、函数等已知元素组成的table,因此创建一个模块很简单,就是创建一个table,然后把需要导出的常量、函数放入其中,最后返回这个table就行。以下为创建自定义模块modu
Lua表tableluatable表table是Lua的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。Luatable使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是nil。Luatable是不固定大小的,你可以根据自己需要进行扩容。Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。例如string.format表示
Lua迭代器Lua迭代器迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素,每个迭代器对象代表容器中的确定的地址。在Lua中迭代器是一种支持指针类型的结构,它可以遍历集合的每一个元素泛型for迭代器泛型for在自己内部保存迭代函数,实际上它保存三个值:迭代函数、状态常量、控制变量。泛型for迭代器提供了集合的key/value对,语法格式如下fork,vinpai
Lua数组lua数组数组,就是相同数据类型的元素按一定顺序排列的集合,可以是一维数组和多维数组。lua数组的索引键值可以使用整数表示,数组的大小不是固定的一维数组array={"Lua","Tutorial"}fori=0,1doprint(arrayi)end我们可以使用整数索引来访问数组元素,如果知道的索引没有值则返回nil。在Lua索引值是以1为起始,但你也可以指定0开始。除此外我们还可以以
Lua字符串字符串字符串或串(String)是由数字、字母、下划线组成的一串字符。Lua语言中字符串可以使用以下三种方式来表示:单引号间的一串字符。双引号间的一串字符。与间的一串字符。string1="Lua"print("\"字符串1是\"",string1)string2='yonyou.com'print("字符串2是",string2)string3="Lua教程"print("字符串3是
Lua运算符算术运算符关系运算符逻辑运算符其他运算符+加法减法乘法/除法%取余^乘幂负号a=21b=10c=a+bprint("Line1c的值为",c)c=abprint("Line2c的值为",c)c=abprint("Line3c的值为",c)c=a/bprint("Line4c的值为",c)c=a%bprint("Line5c的值为",c)c=a^2print("Line6c的值为",c)
Lua函数在Lua中,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。Lua提供了许多的内建函数,你可以很方便的在程序中调用它们,如print()函数可以将传入的参数打印在控制台上。Lua函数主要有两种用途:1.完成指定的任务,这种情况下函数作为调用语句使用;2.计算并返回值,这种情况下函数作为赋值语句的表达式使用Lua编程语言函数定义格式如下:opti
lua循环while循环在条件为true时,让程序重复的执行某些语句,执行语句前会先检查条件是否为truefor循环重复执行指定语句,重复次数可在for语句中控制repeat...until重复执行,直到指定的条件为真时为止循环嵌套循环控制语句break语句goto语句a=10while(a<20)doprint("a的值是:",a)a=a+1endfunctionf(x)print("funct
算术运算符关系运算符逻辑运算符其他运算符+加法减法乘法/除法%取余^乘幂负号a=21b=10c=a+bprint("Line1c的值为",c)c=abprint("Line2c的值为",c)c=abprint("Line3c的值为",c)c=a/bprint("Line4c的值为",c)c=a%bprint("Line5c的值为",c)c=a^2print("Line6c的值为",c)c=apri
lua_变量
lua数据类型
一、模块1、模块的加载顺序加载顺序:内存》内置》sys.path(一系列自定义模块)importsyssys.path环境变量:存放文件路径的列表重点:默认列表的第一个元素就是当前被执行文件所在的目录可以自定义往sys.path添加路径sys.path.append(r'想导入的模块的绝对路径')添加到环境变量最后,最后被查找sys.path.insert(0,r'想导入的模块的绝对路径')添加到
自定义模块的定义一个模块本质上就是一个Py文件自己定义一个模块,其实就是自己写一个py文件如果一个py文件想要当作一个模块杯倒入,文件名一定要遵守命名规范,由数字,字符,下划线组成定义my_moudle模块,my_moudle.pya='hello'deftest():print('我是my_module模块的test方法')定义一个hello模块,hello.pyx='hello'y=1000_
pip命令管理包pipinstall<package_name用来下载一个第三方模块pipuninstall<package_name用来删除一个第三方模块piplist用来列出当前环境安装的模块名和版本号pipfreeze用来列出当前环境安装的模块名和版本号pipfreezefile_name.txt将安装的模块名和版本号重定向输出到指定的文件pipinstallrfile_name.txt读取
模块:在python里有一个py文件,就可以理解为模块不是所有的py文件都能作为一个模块来导入如果想要让一个py文件能够被导入,模块名字必须要遵守命名规则Python为了方便我们开发,提供了很多内置模块importtime1、使用import模块名直接导入模块fromrandomimportrandint2、from模块名import函数名,导入一个模块里的方法或者变量导入这个模块之后,就可以使用
一个函数作为另一个函数的返回值deftest():print('我是test函数')return'hello'defdemo():print('我是demo函数')returntestdefbar():print('我是bar函数')returntest()y=demo()print(y)y()一个函数作为另一个函数的参数,如lambda函数的使用sortfiltermareduce函数内部再定义
官方文档:https://docs.python.org/zhcn/3/library/functions.htmlsort函数的使用有几个内置函数和内置类,用到了匿名函数nums=1,2,3,4,5,6,9,8,7列表的sort方法,会直接对列表进行排序nums.sort()print(nums)ints=(5,7,8,2,4,3,9)sorted内置函数,不会改变原有的数据,而是生成一个新的有
deftest(a,b):x=a//by=a%b一般情况下,一个函数最多只会执行一个return语句特殊情况(finally语句)下,一个函数可能回执行多个return语句,但是值会覆盖returnxreturn语句表示一个函数的结束returny不会被执行return{'x':x,'y':y}字典也可以作为返回returnx,y列表也可以作为返回return(x,y)一般使用元组作为返回值ret
a=100这个变量是全局变量,在整个py文件里都可以访问word="china"deftest():x='hello'这个变量是在函数内部定义的变量,它是局部变量,只能在函数内部使用print('x={}'.format(x))a=109在函数内部又定义了一个新的局部变量如果局部变量的名和全局变量同名,会在函数内部又定义一个新的局部变量,而不是修改了全局变量print('函数内部a={}'.for
函数基础函数就是一堆代码,然后使用的时候来调用这堆代码不使用函数的缺点:冗余,可读性差,维护性太差把多行代码封装成一个整体(函数)在python里面,使用关键字def来声明一个函数def函数名(参数):函数要执行的操作函数定义好了之后并不会自动执行,需要调用才会被执行函数命名规范函数名也是一个标识符由数字、字符下划线组成,不能以数字开头,严格区分大小写,不能使用关键字遵守命名规范,使用下划线连接,
运算符的公共方法+可以用来拼接,用于字符串、元组、列表print('hello'+'world')print(('good','yes')+('hello','world'))print(1,2,3+4,5,6)只能用户集合求差值print({1,2,3}{3})可以用于字符串元组列表,表示重复多次,不能用于字典和集合print('hello'3)print(1,2,33)print((1,2,3
字典、列表、元组、集合、字符串之间的相互转换内置类listtuplesetfromtypingimportOrderedDictnums=1,5,6,9,8x=tuple(nums)print(x,type(x))y=set(nums)print(y,type(y))z=list({'name':'zhsngsan','age':18})print(z,type(z))Python里有一个比较强大
集合(set)集合是一个不重复的无序的,可以使用{}或者set来表示{}有两种意思:字典、集合{}里如果放的是键值对,他就是一个字典,如果{}放的是单个的值,就是一个集合person={'name':'zhangsan','age':19}字典x={'hello','world',1}集合如果有重复的数据,会自动去除names={'zhangsan','lisi','jack','lisi'}pr
字典练习题第一题students={'name':'张三','age':18,'score':98,'tel':'18888888888','gender':'female'},{'name':'李四','age':20,'score':95,'tel':'18888888889','gender':'unkown'},{'name':'王五','age':18,'score':88,'tel':
字典的使用列表可以存储任意数据类型,但是一般情况下,我们都存储单一数据类型names='张三','lisi','wangwu'scores=100,98,80,60persons='张三','18,89,78,99'列表只能存储值,但是无法对值进行描述字典不仅可以保存值,还能对值进行描述使用大括号来表示一个字典,不仅有值value,还有值的描述key字典里的数据都是以键值对keyvalue的形式保
python元组的使用
python深拷贝和浅拷贝
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号