数据+方法(静+动)

数据(对象,如列表对象)+操作(对象的方法,如对自身添加数据)=程序

数据:基本数据类型:数字:整数

                                               浮点数

                                               小数

                                               分数

                                               复数

                                   字符串

操作:自身操作:取:按个取:索引

                                        按范围取:切片

                             给:赋值

                             删:del

           双目操作:算术操作:算术运算:+、-、×、/、%、//

                                               布尔运算:&、|、~、^

                                               比较操作:>、<、==、!=、>=

                             逻辑操作:and、or、not

           控制流:选择:双分支:if

                                       多分支:switch

            I/O操作:

            多元素操作:函数

            块操作:程序

类编程:基类:                         数据:类数据(类内类外共享)

                                                             实例数据(公私有)

                                                  方法:初始化方法

                                                             自定义方法

                                                              重载运算符

               子类(多基类继承):数据:类数据

                                                              实例数据(公私有)

                                                   方法:初始化方法

                                                              自定义方法(可重写)

                                                              重载运算符

注意:

1、为什么定义初始化方法和自定义方法时候,第一个参数都是self,初始化的数据也是指明self?

self用于实例化对象时候,self被替换成绑定的对象名称,用于指明类里面的方法和数据生成一份给此对象。既属于自己,又区别于其他实例化对象的数据和方法,各个对象数据和方法各自无关

2、如何重写基类方法?

方法名称不变,参数可变,函数体可变

3、如何实现多继承,继承的意义?

子类名称(基类1,基类2...);子类继承基类的所有东西,即数据和方法。编程思维上好处,继承式编程,逻辑思维清晰;代码量上少了很多,子类需重复的,基类有的就不用写了;具体操作:子类直接向下兼容可调用基类数据和方法。

4.初始化的作用self.__inin__(self,a,b)?

实例化会自动执行这个初始化函数,给数据属性传入实参值

5.如何实现重载运算符?

class Vector:
     def __init__(self, a, b):
          self.a = a
          self.b = b
 
     def __str__(self):
          return 'Vector (%d, %d)' % (self.a, self.b)
   
     def __add__(self,other):
          return Vector(self.a + other.a, self.b + other.b)
 
v1 = Vector(2,10)
v2 = Vector(5,-2)
print (v1 + v2)

6.如何实现实例化数据公私有?

_单下划线是子类皆可访问,私有化标志;__双下划线自己实例化的类对象也不能访问,绝对的私有化,但是类内可以调用。

7.实例化后,如何操作属性和函数,寻找机制?

使用点号 . 来访问对象的属性,实例对象名称.数据属性(函数);类变量也是,类名称.数据属性,类内和类外皆可使用;先从自己类再到基类,基类并行的从左到右需找

8.何为销毁机制?具体如何操作

可以节省内存,不用的对象可销户腾出空间,在类里边定义好析构函数"def  __del__(self):",在下面调用del 对象时候,和实例化对象自动调用初始化建立实际对象数据一样,自动调用析构函数,释放对象

class Point:

    def __init__( self, x=0, y=0):

        self.x = x

        self.y = y

    def __del__(self):

        class_name = self.__class__.__name__

        print class_name, "销毁"

pt1 = Point()

pt2 = pt1

pt3 = pt1

print id(pt1), id(pt2), id(pt3) # 打印对象的id

del pt1

del pt2

del pt3

9、重写方法不继承,若需要则用super表示调用基类初始化方法

10、self调用类内方法

 

 

                              

           

 

           

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值