Python面向对象基础一

作者分享了从C#转向Python的学习经历,通过对比两种语言的面向对象特性,介绍了Python的基本语法,并提供了实例代码演示。

公司可能过一两个月就要从深圳搬到东莞松山湖,项目组的现在有的在转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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值