内置函数补充 之 反射
getattr 反射 为什么要有反射? 当在设计一个页面访问的时候,通过用户输入相应的url,进入相应的页面,在用户输入的url地址不存在的时候,返回404错误。 def run():
inp = input('请输入要访问的url:')
if inp == 'login':
commons.login()
elif inp == 'logout':
commons.logout()
elif inp == 'home':
C++标准库(六)之traits技术
traits技术 原理:利用template的参数推导机制获取传入的参数型别。 template<typename T>
struct Iter
{
typedef T value_type;
....
}
template<typename T>
typename T::value_type func(T* ite)
{return *ite;} 这种程度,依旧会遇到一个问题:如果不是一个class type(比如指针,引用),就无法进行正确的参数推导。可以使用模板偏特化来
Codeforces 990E Post Lamps 【暴力】【贪心】
虽然只是10^6的数据量,但用cin会tle。一直知道cin常数大,但没想到会是10^3这个级别,而且比scanf慢5倍左右。 我们枚举每个power的lamp,然后对每个power用平均logn的代价去求它的cost,最后取最小值 对于每个power,我们从左往右地去照亮整个区间,首先0点要插一个路灯,下一个路灯理想上想插在0+power的位置(这样区间不被重复照亮),但实际上power位置上的路灯可能被blocked了,所以我们想在power位置之前的离power最近的一个位置安装路灯。如
python settings 中通过字符串导入模块
1. 项目文件结构 set_test
├─ main.py # 入口函数
│
├─notify # 自定义的模块
│ ├─ email.py # 自定义模块
│ ├─ msg.py # 自定义模块
│ ├─ wechat.py # 自定义模块
│ └─ __init__.py # 模块导入初始化函数
│
└─set_test # 总配置文件
└─ settings.py
# 这个项目的架构是很多开源项目的架构标准 2. 接下来看看 文件中的内容 2.1. __i
redis数据类型及常用命令
一.redis数据类型 Redis的五大数据类型 1.string(字符串) String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。 string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。 string类型是Redis最基本的数据类型,一个redis中字符串value最多可以是512M 2.hash(哈希,类似java里的Map)
C++标准库(七)之iterator
iterator iterator模式:提供一种方法,使之能依次访问容器内的各个元素,而又不暴露该聚合物内部的表述方式。 STL的中心思想是将算法与数据结构分离,彼此独立设计,最后在用iterator将他们结合在一起,获得最大的适配性。 vector 设计理念 vector是动态空间,随着元素的加入,内部机制会自动扩充空间以容纳新元素。vector的实现技术核心在于:对容器大小的控制以及重新配置时数据的移动效率。 空间配置策略:在原容器无可用空间时,将容器大小扩展为原先的两倍,然后将原先的数据
5.1.13 线程对象的属性和方法
Thread实例对象的方法: getName(): 返回线程名 setName('XXX'): 设置线程名 is_alive(): 线程是否存活 threading模块提供的一些方法: threading.current_thread() : 返回当前线程的变量 threading. enumerate(): 返回一个包含正在运行的线程的list。不包括启动前和终止后的线程。 threading.active_count(): 返回正在运行的线程数量。同len(threading.
python_cookbook之路:数据结构-解压可迭代对象赋值给多个变量以及扩展的迭代解压语法(*)
1.一一对应: >>> data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]
>>> name, shares, price, date = data
>>> name
'ACME'
>>> date
(2012, 12, 21)
>>> name, shares, price, (year, mon, day) = data
>>> name
'ACME'
>>> year
2012
>>> mon
12
>>> day
21
>>> >>> data =
Hive基础sql语法(DDL)
前言:经过前面的学习我们了解到Hive可以使用关系型数据库来存储元数据,而且Hive提供了比较完整的SQL功能,这篇文章主要介绍Hive基本的sql语法。首先了解下Hive的数据存储结构,抽象图如下:1.Database:Hive中包含了多个数据库,默认的数据库为default,对应于HDFS目录是/user/hadoop/hive/warehouse,可以通过hive.metastore.war
C++标准库(五)之智能指针源码剖析
_Mutex_base template<_Lock_policy _Lp>
class _Mutex_base
{
protected:
enum { _S_need_barriers = 0 };
};
template<>
class _Mutex_base<_S_mutex : public __gnu_cxx::__mutex
{
protected:
enum { _S_need_barriers = 1 };
}; _Sp_cou
SGI STL内存管理
在SGI STL版本的内存管理中,使用这样一种方式来分配内存:内存分配+对象初始化。首先是分配内存,其次是根据对象的类型(是否为POD【Plain of Data】)来使用最有效的方式来初始化对象。回收内存也是用同样的方式:析构对象+回收内存,根据对象是否为POD类型,确定最有效的析构方式。 SGI STL使用双层级配置器,第一级配置器直接使用malloc()和free(),第二级根据如下策略:当配置区块>128 Bytes时,视之为“足够大”,调用一级配置器,否则视之为过小,调用二级配置器。
SpringCloud 进阶之Ribbon和Feign
1. Ribbon 负载均衡 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端,负载均衡的工具; 1.1 Ribbon 配置初步 1.1.1 修改 microservicecloud-consumer-dept-80 // pom.xml
<!-- Ribbon相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-
leetcode278python第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错。实现...
今日推荐
周排行