• 019 python面相对象编程


    一:self的意思

    1.说明

      self代表类的实例,而非类。

      类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称, 按照惯例它的名称是 self。

       self 代表的是类的实例,代表当前对象的地址,而 self.__class__ 则指向类。

    2.程序

     1 #-*-encoding=utf-8-*-
     2 class Bail:
     3     def setName(self,name):
     4         self.name=name
     5     def lick(self):
     6         print("%s..."%self.name)
     7 
     8 a=Bail()
     9 a.setName("tom A")
    10 a.lick()
    11 
    12 ###    __init__  
    13 class BailB:
    14     def __init__(self,name):
    15         self.name=name
    16     def lick(self):
    17         print("%s..."%self.name)
    18 
    19 b = BailB('tom B')
    20 b.lick()

    3.效果

      因为有self。

      

    二:公有与私有

    1.说明

      python中没有正真的私有

    2.程序

      程序一是直接调用,但是私有的时候不可以,但是可以按照下面的方式也可以直接地调用

      python将私有的名字变成这样了:_类名__变量名

     1 #-*-encoding=utf-8-*-
     2 
     3 ###
     4 class Bail:
     5     name='AAAA'
     6 a=Bail()
     7 print(a.name)
     8 
     9 ###私有
    10 class Bail:
    11     __name='BBBB'
    12 a=Bail()
    13 print(a._Bail__name)

    3.效果

      

    三:类变量

    1.说明

      这个和Java优点不同,所以,要单独说明一下。

      如果,直在类中定义的变量,就是类变量。

      

    2.程序说明

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 
     4 class Employee:
     5     '所有员工的基类'
     6     empCount = 0
     7 
     8     def __init__(self, name, salary):
     9         self.name = name
    10         self.salary = salary
    11         Employee.empCount += 1
    12 
    13     def displayCount(self):
    14         print ("Total Employee %d" % Employee.empCount)
    15 
    16     def displayEmployee(self):
    17         print ("Name : ", self.name, ", Salary: ", self.salary)
    18 
    19 
    20 "创建 Employee 类的第一个对象"
    21 emp1 = Employee("Zara", 2000)
    22 "创建 Employee 类的第二个对象"
    23 emp2 = Employee("Manni", 5000)
    24 emp1.displayEmployee()
    25 emp2.displayEmployee()
    26 print ("Total Employee %d" % Employee.empCount)

    3.效果

      

    四:继承

    1.说明

      面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制。

      通过继承创建的新类称为子类派生类,被继承的类称为基类父类超类

    五:组合

    1.程序说明

      不需要继承,直接实例化对象写在__init__中

     1 #!/usr/bin/python
     2 # -*- coding: UTF-8 -*-
     3 class aa:
     4     def printInfo(self):
     5         print ("aa")
     6 
     7 class bb:
     8     def printInfo(self):
     9         print ("bb")
    10 
    11 class zz:
    12     def __init__(self):
    13         ##组合
    14         self.aa=aa()
    15         self.bb=bb()
    16     def printInfo(self):
    17         aa.printInfo(self)
    18         bb.printInfo(self)
    19 
    20 ss=zz()
    21 ss.printInfo()

    2.效果

      

      

  • 相关阅读:
    sqlserver2008 查看数据库自带的索引建议
    DataSnap服务器生成的ID自动更新到客户端
    outlook 插件:导出rss的link地址
    eclipse 升级note
    合并百度影音的离线数据 with python 2.2 bdv格式的更新
    windows ubuntu bcdeditor
    合并百度影音的离线数据 with python 2.1 bdv格式的更新
    合并百度影音的离线数据 with python 第二版 基于yield
    php密码加密(密码散列)
    PHP (超文本预处理器)
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9710701.html
Copyright © 2020-2023  润新知