-
返回函数和返回函数值的语句是非常类似的,返回函数时,不能带小括号,而返回函数值时,则需要带上小括号以调用函数。
# 返回函数 def myabs(): return abs # 返回函数值 def myabs(x): return abs(x)
查看全部 -
需要指定排序的字段是成绩,sorted接受key参数,用来指定排序的字段,key的值是一个函数,接受待排序列表的元素作为参数,并返回对应需要排序的字段。
def k(item): return item[1] # ==> 按成绩排序,成绩是第二个字段 sorted(score, key=k)
查看全部 -
filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,并返回一个迭代器,可以迭代出所有符合条件的元素。
def is_odd(x): return x % 2 == 1 for item in filter(is_odd, [1, 4, 6, 7, 9, 12, 17]): print(item)
查看全部 -
reduce()函数接收的参数和 map() 类似,一个函数 f,一个list,但行为和 map()不同,reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值。
查看全部 -
map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f依次作用在list的每个元素上,map()函数会返回一个迭代器,可以依次迭代得到原来list的元素被函数f处理后的结果。
map(f, list)
查看全部 -
在终端,输入这条命令,就可以启动一个HTTP服务器。
python -m http.server
在浏览器输入http://127.0.0.1:8000看到由这个服务器提供的网页。
通过-d命令可以指定目录路径。
python -m http.server 9999 -d E:/
查看全部 -
在Python中,使用套接字socket来建立起网络连接。
服务端建立需要四个步骤:新建socket、绑定IP和端口(bind)、监听连接(listen)、接受连接(accept)。
客户端仅需两个步骤:新建socket、连接服务端(connect)。
当网络连接上以后,客户端和服务端就可以进行数据通信了,套接字通过send()函数发送数据,通过recv()函数接收数据。
import socket server = socket.socket() # 1. 新建socket server.bind(('127.0.0.1', 8999)) # 2. 绑定IP和端口(其中127.0.0.1为本机回环IP) server.listen(5) # 3. 监听连接 s, addr = server.accept() # 4. 接受连接 print('connect addr:{}'.format(addr)) content =s.recv(1024) print(str(content, encoding='utf-8')) # 接受来自客户端的消息,并编码打印出来 s.close()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()python server.py python client.py
查看全部 -
seek()方法,可以移动文件的游标位置,它接受一个参数,表示文件的位置,0:文件首部,1:当前位置,2:文件尾部,通过seek()可以把文件游标移动到文件首部但不删除文件的内容。
查看全部 -
从模块中导入函数并将其重命名:
from ... import as ... from math import pow as mathpow
查看全部 -
__slots__的目的是限制当前类所能拥有的属性.
class Person(object): def __init__(self,name): self.name = name p = Person('lily') p.age = 12 class Student(object): __slots__ = ('name','gender') def __init__(self,name,gender): self.name = name self.gender s = Student('Tom','Male') s.age = 10 print(s.age) #会出错查看全部 -
dir()返回的是属性是字符串列表;
通过getattr()和setattr()来获取或设置对象属性;
通过type()获得变量类型。
i = 10 type(i) dir(i) class Person(object): def __init__(self,name,age,**kwargs): self.name = name self.age = age for k,v in kwargs.items(): setattr(self,k,v)
查看全部 -
多重继承,初始化方法只调用一次;
多重继承的目的是从多种继承树选择并继承出子类,以便组合功能使用。
class D(object): pass class A(D): pass class MK(object): pass class Ck(MK): pass class Ack(A,Ck): pass
查看全部 -
定义继承类:
1.定义子类,在括号里写明要继承的父类;
2.初始化方法,需要调用super(子类,self).__init__(继承的属性).
class Person(object): def __init__(self,name,gender): self.name = name self.gender = gender class Teacher(Person): def __init__(self,name,gender,subject): super(Teacher,self).__init__(name,gender) self.subject = subject
查看全部 -
1.类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法;
2.类方法的第一个参数将传入类本身,通常将参数名命名为 cls.
class Animal(object): __count = 0 def __init__(self,name,age): self.name = name self.age = age Animal.__count += 1 @classmethod def get_count(cls): return cls.__count
查看全部 -
访问私有属性,可通过类中定义实例方法。
class Animal(object): def __init__(self,name,age,location): self.__name = name self.__age = age self.__location = location def get_info(self): return 'name = {}, age = {}, location = {}'.format(self.__name,self.__age,self.__location)查看全部
举报