公司可能过一两个月就要从深圳搬到东莞松山湖,项目组的现在有的在转Java或其他语言的,问我们要不要转java+hoodap+spark方向,我还是先不转,毕竟之前是从ios转回C#,这现在在转其他的那样每一种都是学个皮毛,都学的不精通。我还是先把C#学好再说,在学C#的基础上可以了解下其他语言,这周看老板朋友圈发招聘要找python,之前只是听说有这个语言,用处还挺广,可一直没去了解过,昨天晚上算是百度了下,看了下具体介绍,用处也挺广的,机器学习都可以用它,今天上午一早起床安装了开发工具Pycharm来玩一下Python。

一、和C#语言的比较

Python也是面向对象的语言,大家也都知道面向对象有3特征,继承、封装和抽象。Python也不例外,由于自己也算接触过C C++(两个都是大学学的,已经还给老师),工作又接触过OC C#,语言只是工具,他们肯定也是有共性和差异。

二、已面向对象3特征为基础

既然Python是面向对象,也是3大特征,所以可以将3大特征涉及的知识列出来,然后对照着学习,比如继承,C#中单继承,多继承采用接口,Python中多继承可以用,逗号隔开。已C#为参照,学习Python更快。

三、实践检验真理

早上一早起来安装开发工具,倒腾了好久,原本想着先跑步呢,安装完开发环境,写了一个helloworld之后又想着试试面向对象的功能,所以写了下面的一个demo。注释也都在代码中。也比较基础只是大概的粗矿的了解,熟悉其他编程语言一眼就能看出,这里只是做个热身,以后会慢慢熟悉Python的细节。

class Person:
    __count=0  #私有属性  在变量、方法前增加两个下划线既声明的是私有变量方法
    def __init__(self,name,age): #构造函数
        self.name=name
        self.age=age
        self.__count+=1
        print("count is %d" %self.__count)

    def __del__(self):  #类似C#中析构函数
        class_name = self.__class__.__name__
        print("%s销毁" % class_name)

    def showSelf(self):#实例方法
        print("hello,I am a person,my name is %s and my age is %d" % (self.name,self.age))

    def __getCount(self):  # 私有方法 无法继承不能在外部访问
        return self.__count

    def get_count(self):
        print("count is %d" % self.__getCount())  # 内部访问私有方法

    @staticmethod  #声明静态方法关键字
    def staticTest():
        print("staticTest")

    @classmethod   #声明类方法关键字
    def classTest(self):
        print("classTest")

class Student(Person):#继承Person父类,如果多个用,隔开
    def __init__(self,name,age,school):
        super().__init__(name,age)   #父类初始化 C#只学base(参数) python 有些不同
        self.school=school
    def __del__(self):
        class_name = self.__class__.__name__
        print ("%s销毁"%class_name)

    def showSelf(self):   #函数重写,覆盖父类方法
        print("hello,I am a student,my name is %s,my age is %d and my school is %s"  % (self.name, self.age,self.school))

per=Person("cuiyanwei",20)
per.showSelf()
per.staticTest()
per.classTest()
per.get_count()
del per

stu=Student("cuiyanwei",20,"周口师范")
stu.showSelf()
stu.staticTest()
stu.classTest()
stu.get_count()
del stu

Python面向对象基础一的更多相关文章

  1. Python 面向对象 基础

    编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...

  2. python面向对象基础

    面向对象基础 1. 简述 编程方式: 面向过程: 根据代码在脚本的堆叠顺序,从上到下依次执行 函数式编程:将相同功能的代码封装到函数中,直接调用即可,减少代码重复性 面向对象:对函数进行分类和封装,将 ...

  3. Python 面向对象基础知识

    面向对象基础知识 1.什么是面向对象编程? - 以前使用函数 - 类 + 对象 2.什么是类什么是对象,又有什么关系? class 类: def 函数1(): pass def 函数2(): pass ...

  4. python 面向对象基础和高级复习

    面向对象基础 面向对象编程 面向过程编程:类似于工厂的流水线 优点:逻辑清晰 缺点:扩展性差 面向对象编程:核心是对象二字,对象属性和方法的集合体,面向对象编程就是一堆对象交互 优点:扩展性强 缺点: ...

  5. 十六、python面向对象基础篇

    面向对象基础: 在了解面向对象之前,先了解下变成范式: 编程范式是一类典型的编程风格,是一种方法学 编程范式决定了程序员对程序执行的看法 oop中,程序是一系列对象的相互作用 python支持多种编程 ...

  6. 1.Python面向对象基础

    面向对象(OOP) 面向对象编程--object oriented programming 简写 OOP   面向过程和面向对象的区别: 面向过程: 1.把完成某一个需求的所有步骤从头到尾逐步实现 2 ...

  7. [python面向对象]--基础篇

    1.#类 #类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 #定义一个类 class bar: def foo(self,agr): print(self,agr) obj = bar() ...

  8. Python面向对象基础:编码细节和注意事项

    在前面,我用了3篇文章解释python的面向对象: 面向对象:从代码复用开始 面向对象:设置对象属性 类和对象的名称空间 本篇是第4篇,用一个完整的示例来解释面向对象的一些细节. 例子的模型是父类Em ...

  9. python面向对象基础-01

    面向对象(OOP)基本概念 前言 话说三国时期曹军于官渡大败袁绍,酒席之间,曹操诗兴大发,吟道:喝酒唱歌,人生真爽! 众将直呼:"丞相好诗",于是命印刷工匠刻板印刷以流传天下; 待 ...

随机推荐

  1. 连接Oracle时ORA-12541 TNS 无监听程序

    http://www.cnblogs.com/Qian123/archive/2016/08/24/5803085.html

  2. EBS获取并发程序Trace File

    http://blog.itpub.net/16832682/viewspace-1249765/ 最近因为项目上出现了PL/SQL性能的问题,因此需要对已经开发好的并发程序进行调优的工作.调优有个很 ...

  3. linux中yum命令的解析

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  4. ASP.Net MVC OA项目笔记<三>

    1.1.1 业务层和数据层之间加一个数据会话层,封装所有数据操作类实例的创建(工厂类) 工厂类是负责对象的创建 作用:将BLL和DAL解耦了,提供一个数据访问的统一访问点 数据会话层DBSession ...

  5. file-loader引起的html-webpack-plugin坑

    引言 最近,我们的一个后台系统要改版为基于react + redux + react-router + ant-design 技术栈,切换到当下比较新的技术来实现后台系统:在项目实施过程中,选择了基于 ...

  6. 网页登入验证码的实现(java&html)

    前端界面实现(由于验证码是动态获取所以用jsp格式) <%@ page language="java" contentType="text/html; charse ...

  7. 一次对路边饮用水RFID供应机的跑路玩法

    "如何成为一个合格的硬件白帽子? 答案: 一个有聪明大脑的你 要有归纳类比和善于用GOOGLE的能力(百度?放弃吧) 善于翻阅和查询相关开发文档和强大的跑路能力." WARNING ...

  8. 多个JDK下TOMCAT运行设置

    当OS中含有多个JDK版本时,设置TOMCAT下JAVA环境变量信息的办法: 1.在setclasspath.bat或者setclasspath.sh下设置 set JAVA_HOME=d:\java ...

  9. Asp.net管线事件(页面请求周期)

    在处理该请求时将由 HttpApplication 类执行以下事件. 希望扩展 HttpApplication 类的开发人员尤其需要注意这些事件. . 对请求进行验证,将检查浏览器发送的信息,并确定其 ...

  10. python使用selector模块编写FTP

    server import os import socket import time import selectors BASE_DIR = os.path.dirname(os.path.abspa ...