7.28 多态 反射 元类
多态 1.什么是多态 多态指的是一类事物有多种形态 例如: 动物有多种形态: 人,狗,猪 在程序中多态指的是,不同对象可以响应相同方法,并可以有自己不同的实现方式 2.为什么需要多态 案例分析: import abc
class Animal(metaclass=abc.ABCMeta): #同一类事物:动物
@abc.abstractmethod
def talk(self):
pass
class People(Animal): #动物的形态之一:人
pgsql物理复制(pgsql 备库的搭建以及角色互换,提升)
结构图如下: Postgresql早在9.0版本开始支持物理复制,也称为流复制,通过从实例级复制出一个与主库一模一样的备库。流复制同步方式有同步,异步两种,如果主节点和备节点不是很忙,通常异步模式下备库和主库的延迟时间能够控制在毫秒级。物理复制只能复制整个实例。 逻辑复制也成为选择性复制,可以做到基于表级别的复制,选择需要逻辑复制的表,而不是复制实例上的所有数据库的表,10版本不支持内置的逻辑复制,通常使用第三方逻辑复制。 WAL日志记录数据库变化,格式为二级制格式,尽管流复制都是基于WAL,
阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_8_等待唤醒机制代码实现_包子类&包子铺类
创建包子类 包子铺 定义包子的成员变量,生成一个带包子参数的构造方法 继承Thread线程类。重写run方法。保证只有一个在执行,所以用到同步技术 wait要try catch 外层定义变量,标明生产包子的数量 生产好了包子进行唤醒 加上while循环
gevent介绍(转)
原文:https://www.liaoxuefeng.com/wiki/897692888725344/966405998508320 Python通过yield提供了对协程的基本支持,但是不完全。而第三方的gevent为Python提供了比较完善的协程支持。 gevent是第三方库,通过greenlet实现协程,其基本思想是: 当一个greenlet遇到IO操作时,比如访问网络,就自动切换到其他的greenlet,等到IO操作完成,再在适当的时候切换回来继续执行。由于IO操作非常耗时,经常使
setInterval函数
var id = setInterval(function(){},timer) console.log(id) chrome id =2; firefox id = 3;
[webpack]深入学习tapable钩子函数
一、手动实现同步钩子函数 1、SyncHook class SyncHook {
// 钩子是同步的
constructor(args){
this.tasks = [];
}
tap(name,task){
this.tasks.push(task)
}
call(...args){
this.tasks.forEach(
(task)=>task(..
安装CDH5.11.2机器
master 192.168.1.30 saver1 192.168.1.40 saver2 192.168.1.50 首先,时间同步 然后,ssh互通 接下来开始: 1.安装MySQL5.6.44 tar -xvf MySQL-5.6.44-1.el6.x86_64.rpm-bundle.tar rpm -ivh MySQL-server-5.6.44-1.el6.x86_64.rpm rpm -ivh MySQL-devel-5.6.44-1.el6.x86_64.rpm 启动MySQL
JS-[delete用法]
delete用法 删除变量 删除属性 自定义对象属性 系统对象属性 delete用来删除一个对象的属性 删除变量 var a=1;
b=1;
function fun(){
var c=1;
console.log(delete c); //false
}
console.log(delete a); //false
console.log(delete b); //true a和b都是window的属性,可以删除隐式全局变量,不能删除显示全局变量 局部变量也不可以删除 删除
centos7 挂载未分配的硬盘空间
=============================================== 2019/7/28_第1次修改 ccb_warlock =============================================== 最近在做提供虚拟机的工作时发现,vcenter的模板虽然可以快速创建出和模板一模一样的虚拟机,但是由于对硬盘的配置每个人的要求不同,vmware只支持扩大硬盘配置。 故在做模板时,硬盘设计的小些,然后根据每个人不同的需求再做磁盘的扩容就好了。 一、场
python中一些不太熟悉的函数记录
hasattr(): hasattr() 函数用于判断对象是否包含对应的属性。 语法: hasattr(object, name) 参数: object -- 对象。 name -- 字符串,属性名 如果对象有该属性返回 True,否则返回 False。
JS-[IIFE&闭包]
JS-IIFE&闭包 IIFE(立即调用函数表达式) 示例 IIFE实现单例模式 闭包 计数器例子 非闭包实现 闭包实现 IIFE闭包实现 内存泄露解决 IIFE(立即调用函数表达式) 示例 (function iife(){ //直接执行,无需调用
console.log("hello");
})();
//上面相当于
function iife(){
console.log("hello");
}
iife(); 注意:为了规范,IIFE的函数名虽无意义,但最好
往对象数组里面添加相同的key 不同的value
应用场景:后盾字段没有发给你 自己补充数据 <div v-for="item in list" :key="item.id">
<p>{{ item.id}} ----> {{ item.name}} --->{{ item.sex }}---> {{ item.tel }}---->{{ item.link}}--插入数据</p>
</div>
var vm = new Vue({
el:"#app",
d
[Attention Is All You Need]论文笔记
主流的序列到序列模型都是基于含有encoder和decoder的复杂的循环或者卷积网络。而性能最好的模型在encoder和decoder之间加了attentnion机制。本文提出一种新的网络结构,摒弃了循环和卷积网络,仅基于attention机制。 self-attention是一种attention机制,它是在单个序列中计算每个位置与其他不同位置关系从而计算序列。Transformer是第一个完全依靠self-attention机制来计算输入和输出表示。 模型架构 encoder 编码器由6
JS-[工厂模式&构造函数&prototype]
JS-工厂模式&构造函数&prototype 工厂模式 自定义构造函数 工厂模式和构造函数的区别 protorype的使用 声明未声明属性 动态声明方法 工厂模式 通过一个函数(工厂函数)来创建对象 function createPerson(name,age){
var obj={
name:name,
age:age,
setName:function(name){
this.name=name;
}
};
return obj; //retur
LeetCode dp专题
longest valid parentheses: dp[i]表示到i为止合法的()长度 s[i] == ')' : dp[i] = dp[i-2] + 2 ( s[i]=='(' ) dp[i] = dp[i-1] + 2 + dp[i-dp[i-1]-2] ( s[i-1] == ')' && s[i-1-dp[i-1]] == '(' ) 注意判断数组下标值是否存在 72. Edit Distance 将word1转换成word2: 三种操作:插入/删除/替换 一个字符 dp[i][j
JS-[函数声明&函数表达式]
JS函数声明&函数表达式 函数声明 函数表达式 定义函数的方式有两种:函数声明和函数表达式 函数声明 有一个重要的特点:函数声明提升(点击查看),意思是在执行上下文前会读取函数声明,所以可以在函数声明前调用函数 functionName(); //可以在函数声明前就调用
function functionName(){
//your code
} 函数表达式 示例 myFun(); //报错,必须在表达式后面
var myFun=function(){
return "aa";
anconda + python 3.6安装(以前的anconda)
anconda + python 3.6安装 anaconda + python3.6安装 安装老版本带python3.6的anaconda 安装老版本带python3.6的anaconda debian镜像: anaconda下载. 官网上的只有python3.7的anaconda安装包,但是清华源的anaconda镜像因为版权原因下架了,想下载一个python3.6的安装包,找了半天才找到一个。 要安装python3.6版本的需要anaconda5.1及以前。 --------------
今日推荐
周排行