本文是学习齐老师的《python全栈工程师》课程的笔记,欢迎学习交流。同时感谢齐老师的精彩传授!
一、课程目标
- 掌握定义简单类的方法
- 理解对象、类和类型的基本概念
二、详情解读
01、类和类型:
温故知新:
内置的类和类型:
- 具体某个字符串和str的关系
- 某个具体的值(数据、对象)
- 某个具体对象所属类别:类型、类
- 类型、类:class
- 内置:默认已经定义了class
- 还可以自定义
>>> type('learn python with laoqi')
<calss 'str'>
>>> help(str)
class str(object):
...
index(..)
| S.index(sub[, start[,end]])->int
...
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')
print(type(p)) # <class '__main__.SuperMan'>
print(type(s)) # <class 'str'>
print(id(p)) # 4396808176
h = SuperMan('huoqubing')
print(id(h)) # 4398996112
print(type(h)) # <class '__main__.SuperMan'>
print(p.name) # guojing
print(h.name) # huoqubing
print(p.kongfu) # xianglongshibazhang
print(p.h) # xianglongshibazhang
自定义类:
什么是类:
在面向对象程序设计中,类(class)是一种面向对象编程语言的构造,它是创建对象的蓝图,描述了所创建对象共同的属性和方法。
02、面向对象:
对象:(Object)是客观世界中的某个具体事物,是编程语言中的基本元素。一般情况下,我们用唯一标识、属性(是什么)、行为(做什么)来描述一个对象。
两种编程思想:
面向过程编程(OPP,Procedure Oriented Programming):是一种以事物为中心的编程思想。主要关注“怎么做”,即完成任务的具体细节。
面向过程对象编程(OOP,Object Oriented Programming):是一种以对象为基础的编程思想。主要关注“谁来做”,即完成任务的对象。
例子:
# 面向过程
def eat(who, what):
print(who+ ' eat ' + what)
eat('laoqi', 'meat') # laoqi eat meat
# 面向对象
class Animal:
def eat(self, food):
print(food)
laoqi = Animal()
laoqi.eat('meat') # meat
实例:
分解实例化过程: 查找初始化方法__init__(注意,这个不叫做“构造方法”),若有,则执行;通常用来设置属性的。实例会包含属性和方法。
class P:
def __init__(self, x):
print('init')
self.name = x # self 指所创建的实例,所以类的实例方法第一个参数必须是 self
zhang = P('san') # 此处会打印出 "init" 字符串,当类实例化时会调用初始化方法__init__()
print(zhang.name) # san
li = P('si') # init
print(li.name) # si
三、课程小结
- 学习了如何自定义类
- 学习了什么是对象和面向对象
- 学习了类的实例
四、作业
- 创建 一个反映学生基本属性和方法的类,并实例化
class Student:
'''
创建 一个反映学生基本属性和方法的类,并实例化
'''
def __init__(self, name, sex, age, score):
self.name = name
self.sex = sex
self.age = age
self.score = score
def study(self):
return 'studying python...'
def code(self):
return 'coding python...'
s1 = Student('yuanwen', '男', 18, 99.9)
print(s1.name) # yuanwen
print(s1.sex) # 男
print(s1.age) # 18
print(s1.score) # 99.9
print(s1.study()) # studying python...
print(s1.code()) # coding python...