模块
模块属性和变量的查看:dir()
变量删除:del X
模块reload:import importlib importlib.reload(model)
模块是包含一定功能实现的集合,一般标准库和安装的模块保存在\python\lib或\python\lib\site-packages
引入的模块可以对模块内的变量方法等做修改,但不会影响原模块代码,即重新引入还是和未修改前一样。
#保存为testmodle.py
def test():
print(1)
__name__='test'
x=1
a=2
__x__=1
__c__='f'
b='d'
import testmodel
#和下面一样
from testmodel import *
print(dir(testmodel))
print(testmodel.x)
del testmodel.x
print(dir(testmodel))#x没有了
import importlib
importlib.reload(testmodel)
print(testmodel.x)
test()
数据结构
4种数据结构:列表,元组,字典,集合
序列的三种形态——列表、元组与字符串,同样拥有一种切片(Slicing)运算符,它能够允许我们序列中的某段切片——也就是序列之中的一部分,如:a[1:5]。
#list
a=['a','b','c']
print(type(a))
#元组
b=('a','b','c')
print(type(b))
#字典
x=10
c={'x':'a','y':5,'z':('a',x)}
print(type(c))
print(c['z'])
#集合,set和dict里面不能有list:
#list 不使用 hash 值进行索引,故其对所存储元素没有可哈希的要求;
# set / dict 使用 hash 值进行索引,也即其要求欲存储的元素有可哈希的要求。
# Python不支持dict的key为list或dict类型,
# 因为list和dict类型是unhashable(不可哈希)的。
d=set(['a','b',('d',5)])
print(type(d))
#set 一般用来验证某某元素
print('a' in d,"and",x in d)
类和继承
类和类的实例,的类比:人和张三李四。所有人一般都有眼耳口鼻,张三李四也有。
class SchoolMember:
'''代表任何学校里的成员。'''
def __init__(self, name, age):
self.name = name
self.age = age
print('(Initialized SchoolMember: {})'.format(self.name))
def tell(self):
'''告诉我有关我的细节。'''
print('Name:"{}" Age:"{}"'.format(self.name, self.age), end=" ")
class Teacher(SchoolMember):
'''代表一位老师。'''
def __init__(self, name, age, salary):
SchoolMember.__init__(self, name, age)
self.salary = salary
print('(Initialized Teacher: {})'.format(self.name))
def tell(self):
SchoolMember.tell(self)
print('Salary: "{:d}"'.format(self.salary))
class Student(SchoolMember):
'''代表一位学生。'''
def __init__(self, name, age, marks):
SchoolMember.__init__(self, name, age)
self.marks = marks
print('(Initialized Student: {})'.format(self.name))
def tell(self):
SchoolMember.tell(self)
print('Marks: "{:d}"'.format(self.marks))
t = Teacher('Mrs. Shrividya', 40, 30000)
s = Student('Swaroop', 25, 75)
# 打印一行空白行
print()
members = [t, s]
for member in members:
# 对全体师生工作
member.tell()