目录
1. 课程目标
2. 类和类型
2.1 温故知新(内置的类和类型)
2.2 自定义类
init(self, name)初始化方法,其中第一个参数必须是self
done(self)普通方法,参数必须时self
p = Superman(‘guojing’)实例化对象,类的实例
>>> class Superman:
'''
a class of superman.
'''
def __init__(self, name):
self.name = name
self.kongfu = 'xianglongshibazhang'
def done(self):
return "coding"
>>> p = Superman('guojing')
>>> s = str('123')
>>> type(p)
<class '__main__.Superman'>
>>> type(s)
<class 'str'>
>>>
2.3 什么是类
3. 面向对象
3.1 再理解对象
两个实例的id值不同,
类型一致
属性
>>> class Superman:
'''
a class of superman.
'''
def __init__(self, name):
self.name = name
self.kongfu = 'xianglongshibazhang'
def done(self):
return "coding"
>>> p = Superman('guojing')
>>> s = str('123')
>>> type(p)
<class '__main__.Superman'>
>>> type(s)
<class 'str'>
>>> id(p)
2463598622752
>>> h = Superman('huoqubing')
>>> id(h)
2463598872416
>>> type(h)
<class '__main__.Superman'>
属性一致
>>> p.name
'guojing'
>>> h.name
'huoqubing'
>>> p.kongfu
'xianglongshibazhang'
>>> h.kongfu
'xianglongshibazhang'
>>>
3.2 两种编程思想:面向过程编程、面向对象编程
面向过程
>>> def eat(who, what): pass
>>> eat('dog', 'shit')
>>> eat('laoqi','meat')
>>>
面向对象
>>> def eat(who, what): pass
>>> eat('dog', 'shit')
>>> eat('laoqi','meat')
>>>
4. 实例
4.1 分解实例化过程
初始化方法在实例创建的时候开始执行
创建实例时,实例中的参数对应初始化方法中的参数
self对应实例的名称
>>> class P:
def __init__(self, x):
print('init')
self.name = x
>>> zhang = P('san')
init
>>> dir(zhang)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name']
>>> zhang.name
'san'
>>> li = P('si')
init
>>> li.name
'si'
>>>
5. 作业
5.1 题目:创建一个反应学生基本属性和方法的类,并实例化
5.2 程序代码
参考代码
'''
创建一个反应学生基本属性和方法的类,并实例化
'''
class Student:
def __init__(self,name, ID, sex, age):
self.name = name
self.ID = ID
self.sex = sex
self.age =age
def eat(self, food):
if food == 'meat':
price = 10
else:
price = 5
# *subjects以元组的形式收集若干个值
def learn(self, *subjects):
if 'python' in subjects:
return "前程似锦"
else:
return "是且仅是道路曲折"
boy = Student("xingcheng", 1634150102, 'boy', 24)
print(boy.age)
subj = boy.learn('chinese','math','English','physics')
print(subj)
5.3 运行结果
C:\Users\邢程\AppData\Local\Programs\Python\Python38\python.exe "D:/Python 项目/入门/2.1.1_job.py"
24
是且仅是道路曲折
Process finished with exit code 0