面向对象编程基础
把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。
类和对象
简单的说,类是对象的蓝图和模板,而对象是类的实例。这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西。在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型)。当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做“类”的东西。
案例:(1)
输入两个数字,打印这两个数的差,和、乘、除、整除、取余、平方
class name(object):
def init(self,a,b):
print(a+b,a-b,a*b)
name(1,2)
案例:(2)
#object 不是一个参数
#class
#输入一个年龄,如果年龄大于18小于20可观看电影
#如果年龄大于20小于50–>电视剧
#如果大于50岁, 新闻联播
class name(object):
def init(self,age):
if 18<= age <=20:
print(‘电影’)
elif 20< age <= 50:
print(‘电视剧’)
else:
print(‘新闻联播’)
name(18)
案例(3)
“”"
定义3个函数,第一个函数:年龄判断 <18 ,18<40,40>
第二个函数:性别判断: 男,女,未知
第三个函数:打印 (年轻,中年,老年)和性别
“”"
class name(object):
def init(self,age,gener):
self.age = age
self.gener = gener
def Age(self):
if self.age <= 18:
print(‘年轻’)
elif 18< self.age <= 40:
print(‘中年’)
else:
print(‘老年’)
def Gener(self):
if self.gener == ‘男’:
print(‘您 ! 是! 男~’)
elif self.gener == “女”:
print(‘您 ! 是! 女~’)
else:
print(‘您好~’)
name = Name(18,‘男’)
name.Age()
name.Gener()
案例(4)
for i in range(10):
print(i)
else:
print(‘hahah’)
“”"
class Name(object):
#判断一个数字是否是素数
def init(self,num) Argus:
# num: int类型的数字
self.num = num
def Check(self):
#检查self.num是不是素数
for i in range(2,self.num):
if self.num % i == 0:
print('不是素数')
break
else:
print('是素数')
name = Name(11)
name.Check()