python是一门面向对象的语言,他不同与C语言,Java这些面向过程的语言。面向对象就是模拟人类认知世界的行为,进行分类处理的过程。
就是要创建一个世界,创建一个类,创建一个对象。类是模板,对象就是模板拓出来一个真实的案例。
类是一些具有相同属性的事物的统称包括,基本的属性和动作,在python中把这些动作叫做方法。比如:人类,鱼类等
class 类名():
class People(object):
def __init__(self,name,age):#属性
self.__name=str(name)
self.__age=int(age)
def GatAge(self):#方法
return self.__age
def __init__(self,name,age):
定义这类事物的基本属性
def GatAge(self):
定义这类事物的动作,即方法
对象就是一类事物中具体的一个,比如人类中的张三。这个张三就是一个对象。
对象名称 = 类名称() 构建对象
class People(object):
def __init__(self,name,age):
self.__name=str(name)
self.__age=int(age)
def GatAge(self):
return self.__age
p=People("张三","18")
print(p.GatAge())
这段代码中p就是People类中的一个对象
p.GatAge()就是p的动作,打印他的年龄。
封装是将类中的一些特别的属性进行加密,封装主要是对类中的某些属性进行私有化,禁止外界访问主要用双下滑线来进行封装。但是会提供公开的方法去访问。
class students(object):
def __init__(self, name):
self.__name = name
def get_name(self,):
return self.__name
def set_name(self, name):
self.__name = name
def __str__(self):
return self.__name
st1 = students('zhang')
print(st1.get_name())
st1.set_name('li')
print(st1.get_name())
如果类中将某些属性私有化,当属性私有化之后,直接在外界访问或者赋值都无法成功,只有使用get方法才可以访问,使用set来修改。
class students(object):
def __init__(self, name):
self.__name = name
def get_name(self,):
return self.__name
def set_name(self, name):
self.__name = name
def __str__(self):
return self.__name
name = property(get_name, set_name)
st1 = students('zhang')
print(st1.name)
st1.name='li'
print(st1.name)
使用property()函数来引用,从而来代替getter和setter.
class students(object):
def __init__(self, name):
self.__name = name
@property
def name(self,):
return self.__name
@name.setter
def name(self, name):
self.__name = name
def __str__(self):
return self.__name
st1 = students('zhang')
print(st1.name)
st1.name='li'
print(st1.name)
继承是指一个子类继承父类的公有属性和公有方法,子类的读取顺序是先从自己本类中查找,若是不存在就到父类中去查询。一个子类可以有多个不同的父类。
class student(object):
def __init__(self, username, name,):
self.username = username
self.__name = name
def say(self):
print("我是父类")
class Granduate(student):
def say(self):
print("我是子类")
a=student("张三","丰")
b=Granduate('li','w')
a.say()
b.say()
print(b.username)
在继承的基础上,父类引用指向子类实例(对下个)的现象,叫做
父类可以调用子类方法!!!
在Python这些弱类型语音,天生支持多态