-
在定义继承类的时候,有几点是需要注意的:
class Student()定义的时候,需要在括号内写明继承的类Person
在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性
查看全部 -
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
查看全部 -
在类属性和实例属性同时存在的情况下,实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例的属性。
另外,当实例没有和类同名的时候,通过实例对象,依然可以访问到类属性。查看全部 -
def后面传递参数是需要双下划线,即要打两次短划线
查看全部 -
装饰函数一般在函数内部会调用传入的函数,并且可能在其前后增加一些操作,最后返回一个在修饰函数中定义的新函数
查看全部 -
1、显式地捕获 i 的值(例如,传入参数)能够记录下来i当时的值
2、闭包中f 函数定义时循环内会捕获 i 的引用,而不是 i 的值
查看全部 -
lambda匿名函数比较好用,例如lambda s: s.capitalize() lambda 后面跟的都是对这个函数的定义,:前的s是传入参数,:后的是返回值
查看全部 -
子类继承多个父类时,通过子类.mro()可以查看方法解析顺序,作用是在super()的init中传入父类参数的排序,总的来说,这个顺序是按照继承时传入的顺序决定的
查看全部 -
import sys中sys是模块实例,同一个工程中或同一个python解释器会话的所有文件中导入的sys都是同一个实例。
查看全部 -
子类定义了__slots__则会加上父类的__slots__,如果子类没定义__slots__,则子类不受限制
查看全部 -
setattr(self,k,v)中,k为属性,v为k的值
查看全部 -
python是动态类型语言,函数相当于是对象的引用,所以没有函数重载、重写,不过能通过鸭子类型实现函数多态,与C++函数多态不同的是,python注重函数(对象)中的行为(例如使用条件判断传入参数的信息,从而执行相应的行为),而不是数据类型;C++函数注重传入参数,编译器在语义分析阶段会将函数名和参数组合生成唯一标识符
查看全部 -
使用实例名.属性创造的是实例属性
查看全部 -
当类属性与创造的实例属性同名时,实例属性优先级高,所以要访问类属性最好用类名.属性
查看全部 -
class Animal(object): pass dog = Animal() cat = Animal() print(dog) print(cat) print(dog == cat)
查看全部 -
对于实例变量,dir()返回所有实例属性,包括__class__这类有特殊意义的属性,返回的数星星是字符串列表,
查看全部 -
类名以大写字母开头
python2中:
查看全部 -
看不懂
查看全部 -
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f依次作用在list的每个元素上,map()函数会返回一个迭代器,可以依次迭代得到原来list的元素被函数f处理后的结果查看全部
-
def add(x, y, f): return f(x) + f(y) 函数作为一个参数查看全部
-
Python官方提供的urllib库可以满足一般情况下的HTTP操作,但是urllib这个库设计是用来处理url地址的,并不是专门处理HTTP操作的包。因此,在很多场景下,一般会使用requests库来进行HTTP请求。查看全部
-
socket通信 客户端
import socket client = socket.socket() # 1. 新建socket client.connect(('127.0.0.1', 8999)) # 2. 连接服务端(注意,IP和端口要和服务端一致) client.send(bytes('Hello World. Hello Socket', encoding='utf-8')) # 发送内容,注意发送的是字节字符串。 client.close()查看全部
举报