zoukankan      html  css  js  c++  java
  • day 17 面向对象-成员

    Day17面向对象-成员

    变量
    1.成员变量(实例变量)(字段column)
    2.类变量(静态变量)直接写在类中的,共享出去的
    方法
    1.成员(实例)方法,加了self的调用的时候.必须用对象去访问
    2.类方法.当方法需要传递类名的时候,需要类方法.规范规则:在上方加@classmethod
    3.静态方法,当你的方法不需要传递当前类的对象的时候.语法规则:在上方加@staticmethod
    属性
    用方法来描述我们的属性信息
    注意:
    1.@property 改变一个方法成为属性
    2.这个方法只能有一个参数
    3.必须有返回值

    私有
    只能在自己的类中访问
    __方法
    __变量
    __类变量

    #变量
    class Person:
        country="中国"   #类变量.不属于对象.对象可以访问
        def __init__(self,name,num,gender,birthday):
            #成员变量(实例变量)
            self.name=name
            self.num=num
            self.gender=gender
            self.birthday=birthday

        #对象来访问(成员方法)   (实例方法)
        def marry(self,duifang):
            print("人会结婚%s" % duifang)

    alex=Person("李杰",10086,"男","昨天")
    alex.country="澳大利亚"   #这里和变量没有关系,alex单独加了一个属性叫country="澳大利亚
    wusir=Person("吴佩琪",10010,"女","今天")

    print(alex.country)   #澳大利亚#拿到的是自己
    print(wusir.country)  #中国
    print(Person.country)  #中国

    # 总结:类变量,用类名去操作.

    # 方法
    class Person:
        def __init__(self):
            pass
        #实例方法需要传递类的对象   self
        def think(self):
            print("人能思考")
        #静态方法不需要传递对象或者类
        @staticmethod#静态方法
        def jisuan(a,b):
            print("我来过这里")
            return a+b


        #类方法:第一个参数传递的是类名
        @classmethod
        def clsMethod(cls):
            p=cls()
            print("我是一个类方法",p)
    p=Person()
    p.think()

    Person.think(p)
    # 静态方法的调用
    # 类名访问
    # 静态的内容也用类名访问


    # 属性
    class Person:
        def __init__(self,name,num,gender,birthday):
            self.name=name
            self.num=num
            self.gender=gender
            self.birthday=birthday
        @property
        def age(self):   #方法只有一个参数,self
            return 10  #必须有返回值
    p=Person("alex","10086","不详","1894943")
    print(p.age)

    # 私有
    class Tiger:
        def __init__(self,name,waibiao,qingzheng,qingfu,money,fangchan):
            self.name=name
            self.waibiao=waibiao
            self.qingzheng=qingzheng
            self.__qingfu=qingfu
            self.__money=money
            self.__fangchan=fangchan
        def buy(self):
            print("我有%s" % self.__money)
            self.__sel()
        def __sel(self):
            print("我要卖掉%s" % self.__fangchan)
    lh=Tiger("alex","正直","刚正","小潘潘",10000000,5)
    lh.buy()


    # 成员:
    class Person:
        def __init__(self,name,num,gender,birthday):
            self.name=name
            self.num=num
        #对象来访问(成员方法)(实例方法)
        # 成员:在类中定义的变量和方法都被称为成员

     

  • 相关阅读:
    无root权限安装tmux
    mosquitto_pub和mosquitto_sub 命令参数说明
    安装Mosquitto学习MOTT协议
    Linux之prink原理
    JZ2440支持设备树(1)-添加设备树之后kernel的启动参数跟dts里面不一致
    Linux可以生产uImage
    Ubuntu18.04下make menuconfig缺少ncurses库
    如何打开kernel最开始的打印
    buildroot管理uboot+kernel+rootfs
    STM32L071CBTX操作ECC508
  • 原文地址:https://www.cnblogs.com/litieshuai/p/9715205.html
Copyright © 2011-2022 走看看