1. 下面两段代码的输出是什么?
第一段代码:
a = 1
def fun(a):
a = 2
fun(a)
print(a)
输出结果:
1
第二段代码:
a = []
def fun(a):
a.append(1)
fun(a)
print(a)
输出结果:
[1]
2. 写一个装饰器
def singleton(cls, *args, **kw):
instances = {}
def getinstance():
if cls not in instances:
instances[cls] = cls(*args, **kw)
return instances[cls]
return getinstance
@singleton
class MyClass:
...
3. Python中会有函数或成员变量包含单下划线前缀和结尾,和双下划线前缀结尾,例如_x_,或__x__,区别是什么?
_x_: 不能用于from module import *以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。__x__: 对Python 来说有特殊含义,魔法方法。
4. 描述__new__和__init__的区别。
__new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供__new__必须要有返回值,返回实例化出来的实例,这点在自己实现__new__时要特别注意,可以return父类__new__出来的实例,或者直接是object的__new__出来的实例__init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值我们可以将类比作制造商,
__new__方法就是前期的原材料购买环节,__init__方法就是在有原材料的基础上,加工,初始化商品环节
5. 请写出你使用过的SQL函数(function)
- avg(column): 返回某列的平均值
- count(column): 返回某列的行数(不包括NULL值)
- count(*): 返回被选行数
- max(column): 返回某列的最大值
- min(column): 返回某列的最小值
- sum(column): 返回某列的总和
6. 请写出Mysql中有多少中连接(join)方式。
- inner join: 内连接
- join: 如果表中有至少一个匹配,则返回行
- left join:即使右表中没有匹配,也从左表返回所有的行。
- right join: 即使左表中没有匹配,也会从由表返回所有的行
- full join: 只要其中一个表中存在匹配,就返回行。
7. 有两张MySQL的表,请编写一段SQL,查询每个省有多少数量的医生。
Table A 医院
| Hospital_id | Province | name |
|---|---|---|
| 1 | 四川 | 华西医院 |
| 2 | 河北 | 河北省人民医院 |
| 3 | 北京 | 协和医院 |
| 4 | 北京 | 北医三院 |
Table B 医生
| id | name | Hospital_id |
|---|---|---|
| 1 | 王强 | 2 |
| 2 | 张倩 | 3 |
| 3 | 赵日天 | 4 |
| 4 | 叶良辰 | 1 |
select count(Province) from table_a,table_b where table_a.Hospital_id = table_b.hospital_id group by Province;
本文探讨了Python编程中常见的技巧,如装饰器、变量作用域及类的实例化过程,并通过具体示例展示了这些概念的实际应用。此外,还介绍了SQL函数及连接方式,最后通过一个实际案例演示了如何利用SQL查询汇总特定数据。

2997

被折叠的 条评论
为什么被折叠?



