找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
Python中的类
# 1、类(class):用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
# 2.变量称为属性
#3. 方法称为行为
# 4.对象是类的实例。在教室里面的每个同学都是人类的这个类的对象,对象又称为实例()
# 5.实例化:根据一个类创建不同的对象的过程叫做实例化
# 6.方法:就是类里面定义的函数
# 7.类变量:人类所共有的属性   head=1
# 8.实例变量:对象或者实例所独有的
# 9、类是用class 来定义,类名称首字母要大写
# class People(object): #新式类
# class People:   经典类
# 10、类里面定义一个方法需要空一个tab键
# 11.如果不定义构造方法就使用默认构造方法
# 12.构造函数里面一般就是用来定义实例变量的,在调用实例


# class people(object):     #object称为父类,基类,也是一切类的父亲

    # head=1     #这是类变量
    # 这是构造函数也是构造方法,作用是为了创建对象用的
    # 双下划线表示为私有的方法
    # def __init__(self,name):         #这个neme就是形式参数
    #     self.name=name       #self.name称为实例变量,实例变量是实例独有的,self是当前类的对象本身
    # 这是一个实例方法
    # def play(self):
    #     print(self.name+'去打篮球')

    # 类方法
    # 这个@符称为装饰,作用是为了不影响原有方法,在原有的方法基础之上
    # @classmethod
    # def func1(cls):
    #     print('这是一个类方法')

#     静态方法
#     @classmethod
    # def func2():
    #     print('这是一个静态方法')

    #私有方法
    # def func3(self):
    #     print('这是一个私有方法')

#    可以通过创建一个实例类方法来引用有变量的结果
#     def func4(self):
#         return self.__age


# 创建一个对象
# 实例化一个对象
# p=people('小王',18)    #创建出来一个对象p,这个名字叫小王
# p1=people('小刘')    #people()称为匿名对象,因为没有传入实际对象名称
# p.play()
# p1.play()


# 1.类和对象调用类变量,实例变量
# print(people.head)         #类调用类变量
# print(people.name)     #报错,类调用实例变量,实例变量是对象和实例变量独有的
# print(p.head)   #对象调用类变量
# print(p.name)    #对象调用实例变量
# 2.类和对象调用实例方法, 类方法, 静态方法
# people.play(p)    #类调用实例方法报错 ,但是传入一个对象,表示具体那个对象去打篮球
# people.func1()     #类调用类方法
# people.func2()     #类调用静态方法
# p.play()           #对象调用实例方法
# p.func1()          #对象掉调用类方法
# p.func2()          #对象调用静态方法


# 调用私有方法和私有变量总结:
# 私有方法和私有变量都不能直接被类和对象所调用,必须先在类的内部通过创建实例方法引用私有变量和私有方法,
# 并将其结果进行返回给实例方法。然后再再类外部通过类和对象调用实例方法,就可以得到私有变量和私有方法的结果
# 3.类和对象调用私有方法和私有变量
# people.__func3    #报错
# p.__func3          #这两个都会报错
# people.func4()     #报错,类不能直接调用实例方法
# p.func4()       #对象调用实例方法
# print(p.name)     #对象能调用实例变量
# print(p.__age)      #对象不能调用私有变量
# print(p.finc5)     #对象调用实例方法引用到私有变量结果
# print(people.func5(p))      #类调用实例方法需要传对象


# python当中,类的三大特性
# 1.封装特性
# class People(object):
#     def __init__(self,name):
#         self.__name = name
#     def setName(self,newname):
#         self.__name = newname
#     def getName(self):
#         return self.__name
# # p = People("xiaowang")
# print(p.__name) #报错
# p.setName("xiaoxiaoming")
# print(p.getName())



# class Father(object):
#     def __init__ (self):      #默认构造函数, 什么都没有,没有属性.
#         pass
#     def smoke(self):
#         print('喜欢抽烟')
#     def rich_man(self):
#         print('非常有钱')
#     def play(self):
#         print('喜欢打牌')
#
# class Son(Father):       #子类继承父类,继承多个父类可以这样写class Son(Father ,A,B)
#     def __init__ (self):
#         Father.__init__ (self)      #继承父类的构造函数
#     def car(self):
#         print('喜欢车')
#     def basketball(self):
#         print('喜欢篮球')
#     def girl(self):
#         print('喜欢美女')
#     def play(self):
#         print('喜欢玩儿')
# s = Son()
# s.rich_man() #调用的时候会联想出父类的特性
# s.play()
# s. smoke()
# s.girl()#自己的特性也会保留
# s.play()#父类和子类有相同特性,只能调用本身的特性

# 多态特性
# 1、多态是以继承和重写父类方法为前提,对所有子类实例化产生的对象
# 调用相同的方法,执行产生不同的执行结果。
# 2、例如同样是人,但是当问起- -个人的职业时会有不同的结果,可能是
# 软件测试工程师,可能是HR
# 3、一个对象的属性和行为不是由他所继承的父类决定的,而是由其本身
# 包含的属性和方法决定的。
# 3.多态(方法的重写)
# class Animal(object):
#     def talk(self):
#         print('我是动物')
#
# class Cat(Animal):
#     def talk(self):
#         print('喵喵')
#
# class Dog(Animal):
#     def talk(self):
#         print('汪汪')
#
# a=Animal()
# a.talk()
# c=Cat()
# c.talk()
# d=Dog()
# d.talk()


分享至 : QQ空间
收藏

1 个回复

倒序浏览
666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册