类和对象是面向对象的两大核心
类
类定义
类是对一群具有相同特征和行为的事物的统称,是抽象的
特征被称为属性,行为被称为方
语法
类型要符合大驼峰命名
classs 类名(object):
def 方法名(self,参数):
代码块
def 方法名(self,参数):
代码块
对象
对象的定义
对象是由类创建的具体存在,在程序中现有类才有对象
比如制作飞机,要先有图纸再有飞机这个实
语法
创建对象的语法
对象名 = 类名()
例如
class animals:
color = "yellow"
def sellp(self):
print("睡觉")
def eat(self,food):
print("吃"+food)
dog = animals()
print(dog.color)
dog.eat("骨头")
补充
1.类需不需要参数,比如类名(object)
可以写也可以不写,python3.x中的所有类都继承了object,即使你不写也会默认继承object
2.方法为什么要用self
self是类的实例,并不是一个类
self和java中的this一样,你可以使用this,但是在python中约定俗成的就是sel
class animals(object):
color = "yellow"
def duixiang(self):
print(self)
def sellp(self):
print("睡觉")
def eat(self,food):
print("吃"+food)
class dog(animals):
def duixiang(self):
print(self)
"""
self是类的对象,是本类的对象,即使是继承关系,他也是子类的对象,并不是父类的对象
"""
d = dog()
d.duixiang()
an = animals()
an.duixiang()
自定义类
#pass是空语句,不做任何事情,只是为了保持结构的完整性
#初始化就相当于我们的构造函数,给参数一个默认值,或者是定义某些参数
class animals():
def __init__(self,name,color="白色",age=5):
self.name = name
self.color = color
self.age = age
def eat(self,food):
print("爱吃"+food)
def jiao(self,jiaosheng):
print(jiaosheng)
print(self)
dog = animals("小白")
dog.eat("骨头")
练习
定义一个人类,
初始化以下属性 名字,性别默认男,年龄默认18
方法:睡觉,吃饭,任务(比如学生要学习,教师要教学)
打印方法,打印人的名字,性别和年龄打印学生对象的信息,比如学生对象的名字是小明,学生的任务是学习
class person():
def __init__(self,name,sex="男",age=18):
self.name = name
self.sex = sex
self.age = age
def sleep(self):
print("睡觉")
def eat(self):
print("一天三顿饭")
def qita(self,zhiye):
print(zhiye)
def show(self):
return self.name+self.sex+str(self.age)
student =person("小明")
print(student.show())
student.qita("学习")