python类与继承
1、什么是类?
用来描述具有相同的属性和方法的对象的集合;它定义了该集合中每个对象所共有的属性和方法;对象是类的实例。
2、什么是对象?
通过定义的数据结构的实例称为对象,Python中的对象包括:2个数据成员(类变量和实例变量)和方法。
name='小刘'
3、什么是实例化?
通过定义一个对象的过程,我们称为实例化;创建一个类的实例,类的具体对象。
name='小刘'
4、类是如何去定义?
通过class定义类
经典类:class +类名
新式类:class +类名(object)
如果类名后面的括号中没有object,则该类为经典类;如果类名后面有object,则该类为新式类
经典类是以深度优先
新式类是以广度优先
在Python中类的变量为属性;类的变量为行为
Python中用class+类名 来定义一个类
class yy() : 这个表示经典类
class yy(object) : 这个表示新式类
class Person(object): #object是一切类的基类,父类
num=520 #定义一个类变量
#self就是实例本身
def __init__(self,name,age):#构造函数(方法)作用:
# 用来初始化对象 创建一个对象
#self.name 为实例变量
self.name=name #把形式参数name赋值给实例变量self.name
self.__age=age #定义一个私有变量 私有变量用2个下划线开头
def shopping(self):
return self.name+'买东西'
#定义一个类方法在方法名上面需要加上装饰器@classmethod
# 类方法中有一个参数为cls
# 装饰器:也是一个函数或者一个类 在不影响原有方法的
# 基础上给该方法增加新的功能
#类方法
@classmethod
def work(cls):
return '我是一个类方法'
# 一般用作单列模式,用python来创建数据库连接对象
#静态方法
@staticmethod
def study():
return '我是一个静态方法'
#通过创建一个实例方法来访问私有变量
def fun(self):
return self.__age
def __fun1(self):
return '我是一个私有方法'
#通过新建一个实例方法来调用私有方法
def fun2(self):
return self.__fun1()
p=Person('菜菜',28) #创建一个对象p p就是一个具体的对象或者实例
# print p.shopping() #对象调用函数(对象调用实例方法)
# 1、调用类变量和实例变量
# print p.num #对象调用类变量
# print Person.num #类调用类变量
# print p.name #对象调用实例变量
# print Person.name #类不能调用实例变量;实例变量是
# 每个实例或者对象所独有的
# 2、调用实例方法、类方法、静态方法
# 对象可以调用我们的实例方法、类方法、静态方法
# print p.shopping() #对象调用实例方法
# print p.work() #对象调用类方法
# print p.study() #对象调用的静态方法
#类名调用实例方法需要一个实例作为入参
# print Person.shopping(p) #类调用实例方法
# print Person.work() #类调用类方法
# print Person.study() #类调用静态方法
# 3、私有方法、私有变量
# print p.fun2() #对象调用私有方法
# print p.fun() #对象调用私有变量
# print Person.fun2(p) #类调用私有方法
# print Person.fun(p) #类调用私有变量
# 注意点:类调不能调用实例变量,类调用实例方法、
# 私有方法、私有变量时;都需要传一个实例作为入参
print a.getName()的意思是在a的东西传入steName里面后输出getName的东西
C:/Users/Administrator/AppData/Local/YNote/data/qq788A1E66A631CF4E5CC90A0BEBD9F713/108459609b2e41f5b389f9d6b035c8f8/hv@%7D%24m9t%5Ds7kf%7Byj9i%7D%5Dd1z.png
pass 通过的意思
#继承
class Father(object):
def __init__(self):
pass
def aiwan(self):
print '爱玩!'
def rich(self):
print '好多钱!'
class Son(Father):#子类继承父类
def __init__(self):
#继承父类的构造方法或者函数
super(Father).__init__(Son)
def aimeinv(self):
print '喜欢美女!'
def cars(self):
print '喜欢跑车!'
s=Son()
s.aiwan() #调用父类的aiwan方法
s.rich() #调用父类的rich方法
s.aimeinv() #调用子类的aimeinv方法
s.cars() #调用子类的cars方法
#判断s是否为Son类的实例对象
print isinstance(s,Son)
#判断Son类是否是Father类的子类
print issubclass(Son,Father)
|
|