[Python]Re:从零开始学python——Day07 面向对象

1.属性方法

1.1 私有属性: 用2个下划线表示__

class student:

    __name = "xiaoming"

    __sex = "man"

    __age = "15"

    def getName(self):
        return self.__name
    def setName(self,name):
        self.__name = name

s = student()

s.setName("xiaohong")

print(s.getName())

1.2 self

可以把它当做C++中类里面的this指针一样理解,就是对象自身的意思,在用某个对象调用该方法时,就将该对象作为第一个参数传递给self。

1.3 构造

init()构造方法,创建对象


class student:

    def __init__(self):
        self.__name = "xiaoming"
        self.__sex = "man"
        self.__age = 15


    def getName(self):
        return self.__name

    def setName(self,name):
        self.__name = name

s = student()

s.setName("xiaohong")

print(s.getName())

1.4 析拆

del()析构方法

删除实例化的对象


class friend():

    def __init__(self):
        self.__name = "putao"

        self.__location = "jiapali"

    def __del__(self):
        print("删除对象")

    def getName(self):
        return __name__

putao = friend()

del putao

print(putao.getName())

1.5 继承

class 子类(父类)

class people:
    name = 'human'

    def sleep(self):
        print(self.name, "sleep")

class chinese(people):
    def eat(self):
        print(self.name, "eat")

c = chinese()

c.sleep()   #human sleep
c.eat()     #human eat

c.name = "xiaoMing"

c.sleep()   #xiaoMing sleep
c.eat()     #xiaoMing eat

1.6 多继承

class 子类(父类A,父类B)

如果有父类有相同方法,A优先调用

子类覆写父类方法,子类方法优先调用

1.7 类属性和实例属性

类属性:直接用类对象调用的属性

实例属性:实例对象调用的属性

1.8 静态方法和类方法

1.8.1 类方法

类方法传入类本身作为参数cls

使用注解@classmethod

类方法可以动态配置

class Color():

    __color = (0,0,0)

    @classmethod
    def getColor(cls):

        if cls.__name__ == 'Red':
            cls.__color = (255,0,0)
        elif cls.__name__ == 'Green':
            cls.__color = (0,255,0)
        return cls.__color

class Red(Color):
    pass

class Green(Color):
    pass

print(Red.getColor())       # (255, 0, 0)
print(Green.getColor())     # (0, 255, 0)

@staticmethod
注解在类的静态方法上,
静态方法只能用类对象访问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,317评论 6 13
  • 1 面向对象No6 面向对象 OO Object Oriented 编程时以对象为单元,封装数据和逻辑,以此提...
    征程_Journey阅读 1,210评论 0 2
  • 写在之前 因为简书字数限制,完整版地址:https://www.zybuluo.com/hainingwyx/no...
    hainingwyx阅读 14,037评论 0 41
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 微风轻抚 留一抹云的温存 夏夜微凉 关上寒冷的夜色 静心等待 月亮送来的安慰 莫在独伤 星空会与你相伴 寒夜不冷 ...
    如果没有语言阅读 384评论 0 2