• 通过比较学python4:OOP 朱燚:


    python的OOP
    每个.net和java的程序员听到python是一门面向对象的语言后,都会问:那么怎么才能在python中创建一个类呢?下面就让我们通过与.net和java的对比学习一下python的OOP吧
    这是一个用python写的类以及用C#写的类,我们来看看他们的区别
    python实现:

    #鸭子类
    class Duck:
    #鸭子的姓名
     name='xiao duck'
    #鸭子的性别
     sex='boy'

    #初始化器
    def __init__(self,name,sex):
      self.name=name
      self.sex=sex

    #鸭子嘎嘎叫的方法
    def GaGa(self):    
    print 'GaGa'

    #创建对象并执行方法
    d=Duck('xiao duck','female')
    d.GaGa()
    print d.sex

    c#实现

    /**//// <summary>
    /// 鸭子类
    /// </summary>
    public class Duck
    ...{
    /**//// <summary>
    /// 鸭子的姓名
    /// </summary>
    public string name = "xiao duck";
    /**//// <summary>
    /// 鸭子的性别
    /// </summary>
    public string sex = "boy";

    /**//// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="name"></param>
    /// <param name="sex"></param>
    public Duck(string name,string sex)
    ...{
    this.name = name;
    this.sex = sex;
        }
    /**//// <summary>
    /// 鸭子嘎嘎叫的方法
    /// </summary>
    public void GaGa()
    ...{
            Console.Write("GaGa");
        }

    public static void Main(string[] argvs)
    ...{
            Duck d=new Duck("xiao duck","female")
            d.GaGa();
            Console.Write(d.sex);
        }
    }

    从上面这段代码,我们可以看到一些显著的不同

    • 首先python的field是没有保护级别的,也就是没有private,public之说,所有的类成员都是public,所有的类方法都是virtual[择自byteofpython p72]
    • python中的__init__函数类似于构造函数,是类初始化时自动调用的方法
    • 类方法的第一个参数其实必须是self
    • self其实就类比于C#中的this
    • 实例话对象不需要像.net和java中一样的new关键字
  • 相关阅读:
    从远程库克隆(转载)
    添加远程库(转载)
    远程仓库(转载)
    maven+hudson构建集成测试平台
    maven_基本配置
    crawler_基础之_httpclient 访问网络资源
    crawler_jsoup HTML解析器_使用选择器语法来查找元素
    oracle_job 清空冗余数据 ,每一分钟执行一次
    oracle_根据ID(字符型)建立分区表
    crawler_基础之_java.net.HttpURLConnection 访问网络资源
  • 原文地址:https://www.cnblogs.com/yizhu2000/p/802261.html
Copyright © 2020-2023  润新知