29、类与对象基础
2019-03-22 本文已影响19人
唯老
一、类
1、什么是类
在 python 中所有类型的数据都可以看成对象, 包括我们我们以前学习的所有的内置类型
int
,float
等.像这些
int
,float
,list
这些数据类型, 就是我们面向对象中的类我们可以根据需要自定义很多类型出来, 这些自定义的类型也是我们面向对象中的类
2、分类
python3中统一都是新式类, pyhon2中才分新式类与经典类
- 经典类
- 新式类
3、自定义类的组成
image4、语法
- 经典类格式
class 类名: #静态字段 属性=值 #私有静态字段(外部无法访问) _属性=值 #私有静态字段且子类无法覆盖 __属性=值 def __init__(self,参数1,参数2,...): """"初始化方法(构造方法)""" #普通字段 self.字段 = 参数1 self.字段 = 参数2 def 方法名(self,参数1,参数2,...): '''无返回值的方法''' def 方法名(self,参数1,参数2,...): '''有返回值的方法''' retrun 返回值 @property def 属性名(self): return obj
- 新式类格式
class 类名(object): #静态变量 属性=值 #私有变量 _属性=值 #用来避免子类覆盖其内容 __属性=值 def __init__(self,参数1,参数2,...): """"初始化方法(构造方法)""" self.变量名 = 参数1 self.变量名 = 参数2 def 方法名(self,参数1,参数2,...): pass
5、举个栗子
- 栗子1
class Person(): def __init__(self, name): self.name = name def say(self): print(self.name + ":在说话") def run(self): print(self.name + ':带着小姨子跑路了') if __name__ == '__main__': person = Person('小明') print(person.name) person.say() person.run()
-
说明
image -
内存分析图
image - 执行步骤
1、将类加载进内存
2、将类变量加载进类的内存
3、将init方法的地址加载进类的内存
4、将普通方法方法的地址加载进类的内存
5、实例化对象分配对象内存地址
6、将实例变量初始化加载进对象内存 - self:
在实例化时自动将对象/实例本身传给__init__
的第一个参数,你也可以给他起个别的名字,但是正常人都不会这么做。
因为你瞎改别人就不认识
作业 - Employee
- 需求:定义一个员工类Employee
- 自己分析出几个成员,然后给出成员变量
- 姓名name,工号id,工资salary
- 以及一个显示所有成员信息的方法。并测试。
- work
- 定义商品类
- 需求:定义个商品类 ShopInfo
- 自己分析出几个成员,然后给出成员变量
- 商品shop_id, 商品名称 name,当前价格 price(商品价格价格大于0),
- 在控制台显示所有的商品信息