公司可能过一两个月就要从深圳搬到东莞松山湖,项目组的现在有的在转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. 8.ajax与django后台json数据的交互

    1新建django项目名为json_ajax,应用名为app,在templates模板中新建ajax.html文件 ajax.html <!DOCTYPE html> <html l ...

  2. Spring @Autowired注解用在集合上面,可以保持接口的所有实现类

    CourseService课程接口有2个子类,HistroyCourseServiceImpl和MathsCourseServiceImpl public interface CourseServic ...

  3. iOS AppIcon尺寸

    如果提交的ipa包中,未包含必要的Icon就会收到类似的通知,为什么偏偏是Icon-76呢? 因为我们开发的游戏,默认是支持iphone以及ipad的,根据官方提供的参考 Icon-76.png是必须 ...

  4. LDAP常用属性及其描述

    属性 全名 描述 dn distinguished name 唯一标识名,类似于绝对路径,每个对象都有唯一标识名. 例如:uid=tester,ou=People,dc=example,dc=com ...

  5. node.js second day

    create global link 使用全局模式安装的包不能直接通过require使用,但是nmp提供了一个 nmp link ,这个可以打破限制 $ nmp link [express] ./no ...

  6. ASP.NET MVC 导入Excel文件

    一:view部分 <form method="post" enctype="multipart/form-data" action="/Posi ...

  7. mongdb window 服务安装批处理

    安装mongodb 3.x 安装完毕后 将以下代码保存为批处理 然后用管理员权限执行就可以成功安装服务了 cd C:\Program Files\MongoDB\Server\3.0\binmongo ...

  8. Linux基础命令-cd

    cd 作用:切换路径 切换至家目录 $ cd $ cd~ 在上一个目录和当前目录来回切换 $ cd - 切换至某用户的家目录 # cd ~ # pwd /root # cd ~quail #pwd / ...

  9. ubuntu下wps无法使用搜狗输入法输入中文

    sudo vim /usr/bin/et sudo vim /usr/bin/wps sudo vim /usr/bin/wpp 以上三个文件,都加入如下内容后重新打开文档即可 export XMOD ...

  10. log4j的日志级别(ssm中log4j的配置)

    log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF.FATAL.ERROR.WARN.INFO.DEBUG.TRACE. ALL. 1. ALL ...