找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
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)

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册