hysyeah

知易行难


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于

  • 搜索

python面试之类变量访问顺序

发表于 2018-08-20 分类于 python

class A: a = 1 a, b, c = A(), A(),A() print(a.a, b.a, c.a) a.a = 2 A.a = 3 print(a.a, A.a, c.a) print(a.__dict__, A.__dict__, c.__dict__) # 输 ...

阅读全文 »

python面试之装饰器

发表于 2018-08-20 分类于 python

import functools def a(f): print('a') @functools.wraps(f) def wraps(*args, **kwargs): print('wraps') ret ...

阅读全文 »

你真的了解python tuple不可变吗

发表于 2018-08-20 分类于 python

最近遇到个有关tuple的面试题,挺有意思的。 # 下面会输出什么?为什么 In [18]: tu = (1, [1, 2]) In [19]: tu[1].append(3) In [20]: print(tu) (1, [1, 2, 3]) tupple不可变是指对象不可变,不可以对tuple中 ...

阅读全文 »

Go接口

发表于 2018-08-18 分类于 GO

接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。 接口类型具体描述了一系列方法的集合,一个实现了这些方法的具体类型是这个接口类型的实例。 一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个 ...

阅读全文 »

Go方法

发表于 2018-08-18 分类于 GO

在函数声明时,在其名字之前放上一个变量,即是一个方法。这个附加的参数会将函数附加这种类型上,即相当于这这种类型定义了一个独占的方法。 /* 这个附加的参数p,叫做方法的接收器(receiver),早期的面向对象语言留下的遗产将调用一个方法称为"向一个对象发送消息" 在Go语言中, ...

阅读全文 »

Go函数

发表于 2018-08-18 分类于 GO

函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体。 func name(parameter-list) (result-list) { body } 实参通过值的方式传递,因此函数的形参是实参的拷贝。对形参进行修改不会影响实参。但是,如果实参包括引用类型,如指针,slice, ...

阅读全文 »

Go复合数据类型

发表于 2018-08-15 分类于 GO

Go复合数据类型包括:数组,切片,字典,结构体。 数组: var a [3]int q := [...]int{1, 2, 3} //数组长度根据初始化元素数量决定 for i, v := range a { fmt.Printf("%d %d\n", i, ...

阅读全文 »

Go基础数据类型

发表于 2018-08-14 分类于 GO

Go将数据类型分为四类: 基础类型、复合类型、引用类型和接口类型。 基础类型包括:数字、字符串、布尔型。 整型 整型分为有符号和无符号类型的整数。 int8 int16 int32 int64 //分别对应8、16、32、64位大小的有符号整型数 uint ...

阅读全文 »

Go程序结构

发表于 2018-08-13 分类于 GO

Go 25个关键字 break default func interface select case defer go map struct chan else ...

阅读全文 »

go概览

发表于 2018-08-12 分类于 GO

Go是编译型语言。 如果缺少import或者导入之后没有使用,程序都不会进行编译。 Go每行结尾并不需要加分号(加分号也不会报错,但不符合规范) Go提供了gofmt命令来处理编码规范问题。 $ gofmt --help usage: gofmt [flags] [path ...] -cpup ...

阅读全文 »

redis之字典实现

发表于 2018-08-11 分类于 Redis

哈希表节点使用dictEntry结构表示,每个dictEntry结构都保存着一个键值对: /* key属性保存着键值对中的键,而v属性则保存着键值对中的值,其中键值对的值可以是一个指针,或者是一个uint64_t整数,又或者是一个int64_t整数 */ typedef struct dictEnt ...

阅读全文 »

redis之链表实现

发表于 2018-08-11 分类于 Redis

Redis链表的实现代码在src/[adlist.h, adlist.c] typedef struct listNode { // 指向前节点的指针 struct listNode *prev; // 指向后节点的指针 struct listNode *next; ...

阅读全文 »

redis之简单字符串SDS

发表于 2018-08-08 分类于 Redis

redis并没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS用作Redis的默认字符串表示。struct sdshdr { // buf 中已占用空间的长度 int len; ...

阅读全文 »

设计模式开篇

发表于 2018-08-07 分类于 设计模式

oop特性1.封装,对外部隐藏内部的实现,对数据进行隐藏 2.多态性,根据类型的不一致,调用不同的方法 3.继承,可以继承其它类的功能 4.抽象-提供简易接口给客户端,客户端可以调用接口中的方法 5.混合,可以构建复杂的数据结构 # A类在B类下 class A(object): def a ...

阅读全文 »

python property

发表于 2018-08-05 分类于 python

class property([fget[, fset[, fdel[, doc]]]]) # fget是用于获取属性值的函数 # fset是用于设置属性值的函数 # fdel是用于删除属性值的函数 # doc是文档字符串 下面是官方文档上的一个例子: In [2]: class C: ...

阅读全文 »

python描述器

发表于 2018-08-04 分类于 python

通常,描述器是具有“绑定行为”的对象属性,其属性访问已被描述器协议中的方法覆盖。这些方法是get __(), set _()和\_delete __()。如果为对象定义了任何这些方法,则称其为描述器. descr.__get__(self, obj, type=None) --> value ...

阅读全文 »

python GIL与线程调度

发表于 2018-08-03 分类于 python

GIL(Global Interpreter Lock)-全局解释锁,python使用GIL来互斥线程对python虚拟机的使用,同一时间只能并且仅有一个线程使用python虚拟机。 为什么要使用GIL 假设有两个线程A、B,在两个线程中,都同时保存着对内存中同一对象obj的引用,也就是说,这时ob ...

阅读全文 »

单例模式(Singleton)-创建型

发表于 2018-08-02 分类于 设计模式

单例模式保证类有且只有一个实例,并提供一个访问他的全局访问点。 1. class Singleton(object): def __new__(cls): if not hasattr(cls, 'instance'): cls.ins ...

阅读全文 »

二叉树

发表于 2018-07-31 分类于 算法与数据结构

代码实现

阅读全文 »

反转链表

发表于 2018-07-31 分类于 算法与数据结构

class Node: def __init__(self, data=None, next=None): self.data = data self.next = next link = Node(1, Node(2, Node(3, Node(4, No ...

阅读全文 »
1…91011…17

hys

329 日志
30 分类
35 标签
hysyeah.top © 2019-2025 粤ICP备19077752号