网易《python全栈工程师》2.1.1 定义类

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值