源码常见Python函数
partial
(修饰函数,声称一个新的函数使其拥有原有函数的功能,但是使其携带了默认参数)
def _xx(a1, a2):
return a1 + a2
data = _xx(11, 22)
print(data)
from functools import partial
def _xx(a1, a2):
return a1 + a2
yy = partial(_xx, a2=100)
data = yy(2)
print(data)
property
取值运行第一个函数,设值运行第二个函数,其中设值的函数必须传入一个参数
class Request:
num = 123
def get_p(self):
return self.num
def set_p(self, value):
self.num = value
POST = property(get_p, set_p)
request = Request()
print(request.POST)
request.POST = 999
print(request.POST)
getattr
getattr(obj, name, default=None)
其实就是相当于对象.属性
,只是如果其中没有这个成员的话使用这种方式会报错,后面加一个值就是充当其默认值
from apps.api import urls
print(urls.app_name)#对象.成员
print(urls.url_parttens)
# 上下等价于
v1 = getattr(urls,"app_name ",123)# urls.app_name
v2 = getattr(urls,"url_parttens ",123)# urls.url_parttens
print(v1)
print(v2)
hasattr
hasattr(obj, name)
判断obj中有没有一个name字符串对应的方法或者属性,一般配合判断语句使用