练习题1:
v = dict.fromkeys(['k1','k2'],[]) print(v) v['k1'].append(666) print(v) v['k1'] = 777 print(v)
{'k1': [], 'k2': []} {'k1': [666], 'k2': [666]} {'k1': 777, 'k2': [666]}
新式类经典类的区别:
经典类:
python3 中没有经典类 在python2.7版本中不会主动继承object
继承的查找顺序 深度优先,
没有mro方法 没有super方法
新式类:
python3中所有的类都是新式类,主动继承object
继承的查找顺序广度优先
有mro super方法
什么是元类?
默认的情况下所有的类的元类都是type,除非指定元类
from abc import ABCMeta class Payment(metaclass=ABCMeta): pass class Mypayment(): __metaclass__ = ABCMeta print(type(Payment)) print(type(Mypayment))
yield与yieldfrom
def func(): for i in 'egon': yield i for j in 'alex': yield j gene = func() print(list(gene))
['e', 'g', 'o', 'n', 'a', 'l', 'e', 'x']
def func(): yield from 'egon' yield from 'alex' gene = func() print(list(gene))
['e', 'g', 'o', 'n', 'a', 'l', 'e', 'x']
正式进入数据库:
关系型数据库:一条数据记录包含了一个事物的多条信息,
信息之间有一定的关联
mysql 开源的
oracle 企业级的
sqlite 轻量级的
sqlserver 大学
非关系型数据库:存取频繁的,并且要求存取的效率高,数据之间的关联不突出
存储结构:
类似于字典:k-v
id content
memcache
redis
MongoDB
nosql
与数据库用户相关的操作:
1,启动myql数据库:
>net start mysql
2,启动客户端:
>mysql
3,使用最高权限root用户登录
mysql>-uroot -p;
4,退出登录
mysql>exit
5,输入过程中放弃本次输入:
mysql>\c
6,查看当前登录的用户:
mysql>select user();
7,查看所有的数据库
mysql>show databases;
8,设置密码
mysql>set password = password('123');
9,创建用户:
服务器进行的操作:
>creat user 'alex'@'192.168.16.%' identified by '123'
>creat user 'eva'@'%' identified by '123'
客户端登录:
mysql>-ueva -p123 -h 192.168.16.39#客户端远程登录sql服务
#新创建出来的用户eva是没有使用数据库的权限
10,创建用户并授权
服务器进行的操作:
grant select/all on '库.表' to '用户名'@'ip地址' identified by '123'
11,给新用户授权
服务器进行的操作:
grant select/all on '库.表' to '用户名'@'ip地址'
grant select on '*.*' to 'eva'@'%'