Jerry 老师讲到14讲,属性、方法、模块、生成器,整理一下课堂学习的内容。
属性和方法
类属性 :直接在类中定义的属性, 类属性只能通过类对象修改,无法通过实例对象来修改。
举例:
class A:
count = 0
a = A()
count = 20
print(A.count)
print(a.count)
实例属性: 通过实例对象添加的属性 , 实例属性只能通过实例对象来访问和修改,类对象无法访问和修改。
举例:
def __init__(self):
self.name = ‘葫芦娃’
#实例方法
def test(self):
print(‘这是test 方法……’)
a = A()
# a.count = 20
A’__init__()
类方法@classmethod cls 可以通过类调用也可以通过实例调用。
@classmethod cls
def test2(cls):
print(‘这是test 方法,它是一个类方法……’,cls)
print(cls.count)
静态方法
@classmethod
def test3 (self):
print(‘这是test3 方法,它是一个静态方法’)
模块
模块化:方便开发方便维护,模块可以复用。
模块的创建
一个py 文件就是一个模块
模块名
name main
模块的使用
语法 模块名 变量名(函数名 对象名)
# import xxx
# import xxx as yyy
# from xxx import yyy,zzz,fff...
# from xxx import *
# from xxx import yyy as zzz
模块是⼀个包含所有你定义的函数和变量的⽂件,其扩展名为.py。模块可以被其它程序引⼊,以使⽤ 该模块中的函数等功能。这也是使⽤python标准库的⽅法。
import module_name
from module_name importname1,name2..
from module_name import *
from module_name import funcas demo_func
sys模块是与python解释器交互模块
sys.argv[] --> 是从程序外部获取参数的桥梁-->[]
其中sys.argv[0]-->程序本身⽂件路径
sys.argv[1]-->外部运⾏时传递的参数
sys.verson --> ⽤来显示解释器版本信息
sys.path -->⽤来显示模块搜索路径
sys.exit() -->⽤来退出程序
生成器.py 在python 中有一边循环一边计算机制,称为生成器。
列表推导式
[表达式for 变量in 旧列表][表达式for 变量 in 旧列表if条件]
生成器解决什么问题
通过列表推导式的方式()
举例:如果想得到一个0-10之内 分别和3相乘的列表
# new_list = [x * 3 for x in range(10)]
# print (type(new_list))
# g = (x * 3 for x in range(10))
# print(type(g))
# 方式一__next__() 获取元素
# print(g.__next__())
# print(g.__next__())
# print(g.__next__())
# print(g.__next__())
# 方式二next()
# print(next(g))
# print(next(g))
# print(next(g))
# print(next(g))
通过函数来创建yield 关键字,只要在函数中添加了yield关键字,就变成了一个生成器函数。
举例:
def fn():
n = 0
while True:
n +=1
# print(n)
Yield n
# return n
n = fn()
print(n)
print(next(g))
print (next(g))