1. # class Foo:
    # name="kevin"
    #
    # def __init__(self,puppy):
    # self.tomato= 'red'
    # self.dog = puppy
    # def bar(self,name):
    # print('you are %s' % name)
    # print('i am %s' % self.name)
    #
    # a = Foo('金毛') #这里传递的参数 是初始化 __init__
    # a.bar('tugou')
    # #上面的self指代类本身
    #
    # #上面的属性可以被串改,比如
    # a.dog="二哈"
    # print(a.dog)
    #如何防止串改数据 就是把变量 或者方法 变成私有 加上_
    # class Foo:
    # name="kevin"
    # def __init__(self,puppy):
    # self.__tomato= 'red'
    # self.__dog = puppy
    # def bar(self):
    # print(self.__dog)
    #
    # a = Foo("金毛")
    # a.bar() #金毛
    # a.__dog="二哈"
    # a.bar() # 金毛
  2.  
  3. #面向对象的特点 : 封装,继承,多态
    #继承
    class Student:
    def __init__(self,name,age):
    self.name=name
    self.age =age
  4.  
  5. def detail(self):
    print(self.name)
    print(self.age)
  6.  
  7. class PrimaryStudent(Student): #这里的student就是继承的上面的student 类
    def lol(self):
    print("不服 solo!")
  8.  
  9. class CollegeStudent(Student):
    def __init__(self,name,age,gf):
    # 于是父级init会被直接overwrite
    self.name = name
    self.age = age
    self.gf = gf
  10.  
  11. def gf_detail(self):
    print(self.gf)
  12.  
  13. # a = PrimaryStudent('kevin',44)
    # a.lol()
    # a.detail()
  14.  
  15. # b = CollegeStudent('kevin',32,'lara')
    # b.detail()
    # b.gf_detail()
  16.  
  17. ##如何获得对象的信息 用type()
    # print(type(None))
  18.  
  19. ##isinstance()可以判断一个对象是否是某种类型(包括继承关系)
    # class A:
    # pass
    # class B(A):
    # pass
    # class C(B):
    # pass
    # y = C()
  20.  
  21. # print(isinstance(y,B)) #判断是否和类C有继承关系
  22.  
  23. #使用dir()方法获得一个对象的所有属性和方法 ,可以使用dir()函数,它返回一个包含字符串的list
    # print(dir(Student))
  24.  
  25. #如何重写内置的规则 比如如何重置计算长度的内置方法
    # class yObjest:
    # # test = 1
    # def __len__(self):
    # return 1234
    #
    # a = yObjest()
    # print(a.__len__())
  26.  
  27. #获取内置对象的属性 或者是判断内置对象 以及设置对象
    # print(hasattr(a,'x')) #判断对象是否有x属性
    # print(setattr(a,'x',1))#给对象设置一个属性值
    # print(hasattr(a,'x'))#再次判断对象 是否有x属性
    # print(getattr(a,'x'))#结果有了 查看x属性
    # print(getattr(a,'x',404))#结果有了 查看x属性 如果没有则返回404
    # print(yObjest.test)
  28.  
  29. #如何直接删除一个类的属性
    # class yObjest:
    # test = 1
    # def __len__(self):
    # return 1234
    #
    # a = yObjest()
    # a.test=2
    # print(a.test)
    # del a.test
    # print(a.test)
  30.  
  31. #模块和包 : python的程序由包(package) ,模块(module)和函数组成,包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合
    # 包就是完成特定任何的工具箱,python 提供了许多有用的工具包,入2字符串处理,图形用户接口,web应用,图形图像处理等。这些自带的工具包和模块安装在python的安装目录下lib子目录中
    # import sys
    # print(sys.path)
  32.  
  33. #如果发现自己引用的包不存在的时候,怎么办 先调用上面的sys.path方法,如果发现系统引用的位置不包括我们安装的包 用 sys.path.append('包的路径')添加包的路径
    # print(sys.path.append('包的路径'))
  34.  
  35. #模块的导入方法
    #第一种就是上面的import方式
    #第二种用form-import语句实现部分或者全部导入
    # from sys import path #直接导入path方法
    # from sys import path as getpath #直接导入path方法 并重命名
    # from sys import * #直接导入所有
    # print(path)
  36.  
  37. #安装包的方法 pip install

python基础笔记之面向对象的更多相关文章

  1. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  2. Python基础笔记系列一:基本工具与表达式

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...

  3. 我的Python基础笔记

    Python是从刚开始参加工作,就有听各方面的测试大牛推崇,但是刚开始做测试时还是把基础的测试方法放在第一位来学习的,直到半年多以后才开始接触Python. 我的Python基础主要是以廖雪峰老师的在 ...

  4. Python基础笔记1

    这篇笔记来自廖雪峰的Python教程. 一.Python基础 Python使用缩进来组织代码块,务必遵守约定俗成的习惯,坚持使用4个空格的缩进. 在文本编辑器中,需要设置把Tab自动转换为4个空格,确 ...

  5. python基础笔记-0

    python中数据结构,主要有列表.元组.字典.集合. python中最基本数据结构是序列(sequence).序列中每个元素被分配一个序号——即元素位置,也成为索引.第一个索引是0,第二个是1,以此 ...

  6. python学习笔记六 面向对象相关下(基础篇)

    面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以将多函数中公用的变量封装到对象中) 对象,根据模板创建的 ...

  7. python基础整理4——面向对象装饰器惰性器及高级模块

    面向对象编程 面向过程:根据业务逻辑从上到下写代码 面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程 面向对象编程(Object Oriented Pro ...

  8. Python基础笔记系列十四:python无缝调用c程序

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...

  9. Python基础笔记系列十三:socket网络编程

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...

随机推荐

  1. ubuntu编译centos7部署大象医生 dr-elephant

    github下载源码 ubuntu上安装play,配置好环境变量 暂时不支持基于spark2.x的编译,所以compile.conf中spark版本不变 调用build.sh开始编译 编译好后dist ...

  2. JS数组去重算法实现

    之前一段时间一直在准备面试, 因而博客太久没更新: 现在基本知识点都复习完毕, 接下来就分享下 面试的一些常见问题: 去正规的互联网公司笔试.面试有很大的概率会碰到 使用javascript实现数组去 ...

  3. Java 容器 LinkedHashMap源码分析1

    同 HashMap 一样,LinkedHashMap 也是对 Map 接口的一种基于链表和哈希表的实现.实际上, LinkedHashMap 是 HashMap 的子类,其扩展了 HashMap 增加 ...

  4. OKHttp概览

    1,整体思路 从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的,实现方案上有什么技巧,有什么范式.全文基本上是对 OkHttp 源码的一个分析与导读,非常建议大家下载 OkHtt ...

  5. Bezier曲线

    1. 学习网址 http://give.zju.edu.cn/cgcourse/new/book/8.2.htm

  6. hdu 1505,1506

    1506题目 1505题目 1506: #include<stdio.h> #include<string.h> #include<iostream> using ...

  7. sun.jersey使用Jackson转换数据

    差点被com.sun.jersey自身的json转换吓死,遇到List等类型,会把这些也转换为json对象,而不是jsonarray. 被园里的同行拯救了,在web.xml中配置一下就ok. < ...

  8. K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Core DevOps

    一.介绍 前一篇,写的K8S部署环境的文章,简单的介绍下DevOps(Development和Operations的组合词),高效交付, 自动化流程,来减少软件开发人员和运维人员的沟通.Martin ...

  9. docker 搭建Mysql集群

    docker基本指令: 更新软件包 yum -y update 安装Docker虚拟机(centos 7) yum install -y docker 运行.重启.关闭Docker虚拟机 servic ...

  10. You can also run `php --ini` inside terminal to see which files are used by PH P in CLI mode

    在php.ini中打开extension=php_fileinfo.dll 就可以了