python进阶1

2021/12/4 17:17:06

本文主要是介绍python进阶1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1、python中的标识符:
1)第一个字符必须是字母表中字母或下划线 _ 。
2)标识符的其他的部分由字母、数字和下划线组成。
3)标识符对大小写敏感。
4)不可以是python中的关键字,如False、True、None、class等。
注意:self不是python中的关键字。类中参数self也可以用其他名称命名,但是为了规范和便于读者理解,推荐使用self。
2、参数:
一般在定义函数的时候,我们可能不知道也不限制参数的数量,这个时候就可以用*args、**kwargs,*args表示参数在被传入的时候自动组装为一个元组,**kwargs要用=连接键和值。
例如:
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
>>> person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}

a、b是位置参数,除了位置参数、变长参数、关键字参数外,还有默认参数、命名关键字参数
3、元组的定义:
正确:(1, ),(1,2 ),(1, 2,(2,3))
错误:(1)——>(1)会被python认为是int类型,所以必须是(1,)

>>> print(type((1,)))
<class 'tuple'>
>>> print(type((1)))
<class 'int'>
4、装饰器定义:返回函数名or函数
如果外层函数返回的是一个函数名的话,运行结果应该是:正在装饰
如果外层函数返回的是函数调用的话,运行结果是:正在装饰 正在验证权限

def w1():
   print('正在装饰')
   def inner():
        print('正在验证权限')
  
   return inner()
  
w1()

5、类型判断:
isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。
issubclass() 函数用于判断参数是否是类型参数的子类。
EG:
	class A(object):
	    pass
	class B(A):
	    pass
	b = B()

结论:
	isinstance(b, A) == True
	issubclass(B, A) == True
	issubclass(b, B) == True
	isinstance(b, object) == False
6、python中__new__和__init__的区别
(1)__init__ 方法为初始化方法, __new__方法才是真正的构造函数。
(2)__new__方法默认返回实例对象供__init__方法、实例方法使用。
(3)__init__ 方法为初始化方法,为类的实例提供一些属性或完成一些动作。
(4)__new__ 方法创建实例对象供__init__ 方法使用,__init__方法定制实例对象。
(5)__new__是一个静态方法,而__init__是一个实例方法。
7、静态方法和非静态方法:
	1、静态方法属于类所有,类实例化前即可使用;
	2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;
	3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;
	4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;
	5、静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁;
	6、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
8、python socket
	sk.recv(bufsize[,flag]):接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量。flag提供有关消息的其他信息,通常可以忽略。
	sk.recvfrom(bufsize[.flag]):与recv()类似,但返回值是(data,address)。其中data是包含接收数据的字符串,address是发送数据的套接字地址。
	sk.getsockname():返回套接字自己的地址。通常是一个元组(ipaddr,port)
	sk.connect(address):连接到address处的套接字。一般,address的格式为元组(hostname,port),如果连接出错,返回socket.error错误。
	
	sk.listen(backlog):开始监听传入连接。backlog指定在拒绝连接之前,可以挂起的最大连接数量。




这篇关于python进阶1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程