Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_python
提交
45a4cfec
S
skill_tree_python
项目概览
CSDN 技术社区
/
skill_tree_python
通知
66
Star
14
Fork
6
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_python
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
45a4cfec
编写于
11月 22, 2021
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
改进21题
上级
04f4899f
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
289 addition
and
39 deletion
+289
-39
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.json
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.json
+0
-15
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.md
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.md
+142
-0
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.py
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.py
+1
-5
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.json
.../1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.json
+0
-11
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.md
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.md
+145
-0
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.py
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.py
+1
-8
未找到文件。
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.json
浏览文件 @
45a4cfec
{
"multiline"
:
[
{
"hash_set = {}"
:
""
,
"hash_set[key] = value"
:
"hash_set[key] = {}"
},
{
"return []"
:
"return None"
},
{
"value = hashset.hget('puzzle', key)"
:
"value = hashset.get('puzzle', key)"
},
{
"hashset.hset('puzzle', 'good', 'bye!')"
:
"hashset.hset('good', 'bye!')"
}
],
"source"
:
"hash_key_value_set.py"
,
"depends"
:
[
"key_value_set.py"
...
...
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.md
0 → 100644
浏览文件 @
45a4cfec
# Python 类的基本使用(2)
在上一题的基础上。通过类的集成,可以扩展原有的类。例如继承
`KeyValueSet`
容器类,扩展功能,支持类似redis的
`hset`
/
`hget`
/
`hkeys`
扩展接口
基本代码框架如下
```
python
from
key_value_set
import
KeyValueSet
class
HashKeyValueSet
(
KeyValueSet
):
def
__init__
(
self
)
->
None
:
super
().
__init__
()
def
hset
(
self
,
hash_key
,
key
,
value
):
# TODO(You): 请在此实现 hset 方法
def
hget
(
self
,
hash_key
,
key
):
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
return
None
else
:
return
hash_set
.
get
(
key
)
def
hkeys
(
self
,
hash_key
):
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
return
[]
else
:
return
hash_set
.
keys
()
```
用例如下:
```
python
if
__name__
==
'__main__'
:
hashset
=
HashKeyValueSet
()
hashset
.
hset
(
'puzzle'
,
'hello'
,
'world!'
)
hashset
.
hset
(
'puzzle'
,
'monkey'
,
'king!'
)
hashset
.
hset
(
'puzzle'
,
'tomorrow'
,
'is another day'
)
hashset
.
hset
(
'puzzle'
,
'good'
,
'bye!'
)
keys
=
hashset
.
hkeys
(
'puzzle'
)
for
key
in
keys
:
ret
=
input
(
"猜一猜下半句是什么? {} -> :"
.
format
(
key
))
value
=
hashset
.
hget
(
'puzzle'
,
key
)
if
ret
==
value
:
print
(
'你太厉害了,这都能猜得到!'
)
else
:
print
(
'哈哈,肯定猜不到得啦:{}->{}'
.
format
(
key
,
value
))
```
请选出下面对
`TODO`
的实现代码中,
<span
style=
"color:red"
>
错误
</span>
的选项。
## template
```
python
class
HashKeyValueSet
(
KeyValueSet
):
def
__init__
(
self
)
->
None
:
super
().
__init__
()
def
hset
(
self
,
hash_key
,
key
,
value
):
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{}
hash_set
[
key
]
=
value
self
.
set
(
hash_key
,
hash_set
)
else
:
hash_set
[
key
]
=
value
self
.
set
(
hash_key
,
hash_set
)
def
hget
(
self
,
hash_key
,
key
):
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
return
None
else
:
return
hash_set
.
get
(
key
)
def
hkeys
(
self
,
hash_key
):
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
return
[]
else
:
return
hash_set
.
keys
()
if
__name__
==
'__main__'
:
hashset
=
HashKeyValueSet
()
hashset
.
hset
(
'puzzle'
,
'hello'
,
'world!'
)
hashset
.
hset
(
'puzzle'
,
'monkey'
,
'king!'
)
hashset
.
hset
(
'puzzle'
,
'tomorrow'
,
'is another day'
)
hashset
.
hset
(
'puzzle'
,
'good'
,
'bye!'
)
keys
=
hashset
.
hkeys
(
'puzzle'
)
for
key
in
keys
:
ret
=
input
(
"猜一猜下半句是什么? {} -> :"
.
format
(
key
))
value
=
hashset
.
hget
(
'puzzle'
,
key
)
if
ret
==
value
:
print
(
'你太厉害了,这都能猜得到!'
)
else
:
print
(
'哈哈,肯定猜不到得啦:{}->{}'
.
format
(
key
,
value
))
```
## 答案
```
python
hash_set
=
self
.
get
(
hash_key
,{
key
:
value
})
self
.
set
(
hash_key
,
hash_set
)
```
## 选项
### A
```
python
self
.
set
(
hash_key
,
{
key
:
value
})
```
### B
```
python
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{
key
:
value
}
else
:
hash_set
[
key
]
=
value
self
.
set
(
hash_key
,
hash_set
)
```
### C
```
python
hash_set
=
self
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{
key
:
value
}
self
.
set
(
hash_key
,
hash_set
)
else
:
hash_set
[
key
]
=
value
self
.
set
(
hash_key
,
hash_set
)
```
data/1.python初阶/2.基础语法/4.类/hash_key_value_set.py
浏览文件 @
45a4cfec
...
...
@@ -35,7 +35,7 @@ class HashKeyValueSet(KeyValueSet):
return
hash_set
.
keys
()
def
test
()
:
if
__name__
==
'__main__'
:
hashset
=
HashKeyValueSet
()
hashset
.
hset
(
'puzzle'
,
'hello'
,
'world!'
)
...
...
@@ -51,7 +51,3 @@ def test():
print
(
'你太厉害了,这都能猜得到!'
)
else
:
print
(
'哈哈,肯定猜不到得啦:{}->{}'
.
format
(
key
,
value
))
if
__name__
==
'__main__'
:
test
()
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.json
浏览文件 @
45a4cfec
{
"one_line"
:
{
"self.kvset.set"
:
[
"self.set"
],
"self.kvset.get"
:
[
"self.get"
],
"KeyValueSet()"
:
[
""
]
},
"source"
:
"hash_key_value_set_by_compose.py"
,
"depends"
:
[
"key_value_set.py"
...
...
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.md
0 → 100644
浏览文件 @
45a4cfec
# Python 类的基本使用(3)
基于第1题,还可以通过类的组合,使用组合而非继承实现类的扩展,支持类似
`redis`
的
`hset`
/
`hget`
/
`hkeys`
扩展接口
相比于本节第2题,下面代码使用组合的方式复合
`KeyValueSet`
的功能,从而实现
`HashKeyValueSet`
。
```
python
from
key_value_set
import
KeyValueSet
class
HashKeyValueSet
:
def
__init__
(
self
,
kvset
)
->
None
:
super
().
__init__
()
self
.
kvset
=
kvset
def
hset
(
self
,
hash_key
,
key
,
value
):
# TODO(You): 请在此添加代码
def
hget
(
self
,
hash_key
,
key
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
return
None
else
:
return
hash_set
.
get
(
key
)
def
hkeys
(
self
,
hash_key
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
return
[]
else
:
return
hash_set
.
keys
()
```
类
`HashKeyValueSet`
的用例如下:
```
python
def
test
():
hashset
=
HashKeyValueSet
(
KeyValueSet
())
hashset
.
hset
(
'puzzle'
,
'hello'
,
'world!'
)
hashset
.
hset
(
'puzzle'
,
'monkey'
,
'king!'
)
hashset
.
hset
(
'puzzle'
,
'tomorrow'
,
'is another day'
)
hashset
.
hset
(
'puzzle'
,
'good'
,
'bye!'
)
keys
=
hashset
.
hkeys
(
'puzzle'
)
for
key
in
keys
:
ret
=
input
(
"猜一猜下半句是什么? {} -> :"
.
format
(
key
))
value
=
hashset
.
hget
(
'puzzle'
,
key
)
if
ret
==
value
:
print
(
'你太厉害了,这都能猜得到!'
)
else
:
print
(
'哈哈,肯定猜不到得啦:{}->{}'
.
format
(
key
,
value
))
if
__name__
==
'__main__'
:
test
()
```
请选出下面对两种
`TODO`
的实现代码中,
<span
style=
"color:red"
>
错误
</span>
的选项。
## template
```
python
from
key_value_set
import
KeyValueSet
class
HashKeyValueSet
:
def
__init__
(
self
,
kvset
)
->
None
:
super
().
__init__
()
self
.
kvset
=
kvset
def
hset
(
self
,
hash_key
,
key
,
value
):
self
.
kvset
.
set
(
hash_key
,
{
key
:
value
})
def
hget
(
self
,
hash_key
,
key
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
return
None
else
:
return
hash_set
.
get
(
key
)
def
hkeys
(
self
,
hash_key
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
return
[]
else
:
return
hash_set
.
keys
()
def
test
():
hashset
=
HashKeyValueSet
(
KeyValueSet
())
hashset
.
hset
(
'puzzle'
,
'hello'
,
'world!'
)
hashset
.
hset
(
'puzzle'
,
'monkey'
,
'king!'
)
hashset
.
hset
(
'puzzle'
,
'tomorrow'
,
'is another day'
)
hashset
.
hset
(
'puzzle'
,
'good'
,
'bye!'
)
keys
=
hashset
.
hkeys
(
'puzzle'
)
for
key
in
keys
:
ret
=
input
(
"猜一猜下半句是什么? {} -> :"
.
format
(
key
))
value
=
hashset
.
hget
(
'puzzle'
,
key
)
if
ret
==
value
:
print
(
'你太厉害了,这都能猜得到!'
)
else
:
print
(
'哈哈,肯定猜不到得啦:{}->{}'
.
format
(
key
,
value
))
if
__name__
==
'__main__'
:
test
()
```
## 答案
```
python
self
.
set
(
hash_key
,
{
key
:
value
})
```
## 选项
### A
```
python
self
.
kvset
.
set
(
hash_key
,
{
key
:
value
})
```
### B
```
python
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{
key
:
value
}
else
:
hash_set
[
key
]
=
value
self
.
kvset
.
set
(
hash_key
,
hash_set
)
```
### C
```
python
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{}
hash_set
[
key
]
=
value
self
.
kvset
.
set
(
hash_key
,
hash_set
)
else
:
hash_set
[
key
]
=
value
self
.
kvset
.
set
(
hash_key
,
hash_set
)
```
data/1.python初阶/2.基础语法/4.类/hash_key_value_set_by_compose.py
浏览文件 @
45a4cfec
...
...
@@ -13,14 +13,7 @@ class HashKeyValueSet:
self
.
kvset
=
kvset
def
hset
(
self
,
hash_key
,
key
,
value
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
if
hash_set
is
None
:
hash_set
=
{}
hash_set
[
key
]
=
value
self
.
kvset
.
set
(
hash_key
,
hash_set
)
else
:
hash_set
[
key
]
=
value
self
.
kvset
.
set
(
hash_key
,
hash_set
)
self
.
kvset
.
set
(
hash_key
,
{
key
:
value
})
def
hget
(
self
,
hash_key
,
key
):
hash_set
=
self
.
kvset
.
get
(
hash_key
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录