Python中面向对象之类

类的构造函数

  • Python中用def__init__(self,[])方法来定义构造函数,主要用来在创建对象时初始化对象

  • Python中用def__del__()方法定义析构函数

1. 构造函数案例

  class complex:
          def __init__(self,real,imag):  #此处要记得写参数self
                    self.r = real
                    self.i = imag
                    print("构造函数被调用")
    x = complex(3.0,-4.5)
    print(x.r,x.i)


2. 析构函数
案例

    class complex:

          def __init__(self,realpart,imagpart):

                    self.r = realpart

                    self.i = imagpart

          def __del__(self):

                    print("调用析构函数,此事之后complex不存在了")

    x = complex(3.0,-4.5)

    print(x.r,x.i)

    del x

类成员与实例成员

  • 实例属性一般是指在构造函数__init__()中定义的,定义和使用时必须以self作为前缀;类属性是在类中所有方法之外定义的数据成员 python中的构造函数是用来初实例化实例成员。

    案例:

   class bike:

        price = 500#类成员

        def __init__(self,color): #color是实例成员

                self.color = color

    a = bike("blue")

    a.price

    print(a.color)

    print(a.price)

类的公有成员和私有成员

  • 下Python程序中定义的成员变量和方法默认都是公有成员,类之外的任何代码都可以随意访问这些成员。如果在成员变量和方法名前面加上两个下划线“——”左前缀,则访问变量和方法就是类的私有成员

案例

  #访问私有成员

    class T:

            def __init__(self,a,b):#定义一个构造函数,有两个变量a,和b

                    self.__a = a#此处加了下划线'__'表示私有成员

                    self.__b = b

            def add(self):  #定义一个求和函数

                    self.__sum =self.__a + self.__b

                    return self.__sum

            def printsum(self):

                    print(self.__sum)

    test = T(2,3)#给T类里的变量a,b 赋值

    s = test.add()

    print(s)

    test.printsum()

类的私有成员和受保护成员

  1. _xxx:这样的对象叫保护成员,不能用 "from 模块 import * "导入,只有类对象和子类对象能访问这些成员

  2. __xxx__:这样的对象是系统的保护成员

  3. __xxx:这样的对象时类中的私有成员,只有类对象自己访问,子类对象也不能访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式访问

案例

 class T:
  def __init__(self,x=1,y=2):   #定义私有方法 __init__()
            self._x = x #保护成员
            self.__y = y  #私有成员
    def setvalue(self,x,y):        #定义普通成员方法setvalue()
            self._x = x
            self.__y = y
    def show(self):                #定义普通成员方法show()
            print(self._x)
            print(self.__y)
a = T()
print(a._x)
print(a._T__y)           #在外部访问对象的私有成员
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值