zoukankan      html  css  js  c++  java
  • 函数三大特性学习总结

    函数的三大特性(二)

    #多态:

    什么是多态:

    一个类表现出的多种状态,通过继承来实现的。

    在java中的表现:在一个函数中需要给参数指定数据类型,如果这个地方可以接收两个以上类型的参数,

    那么这些类型应该有一个父类,这个父类是所有子类对象的类型。

    在python中:函数的参数不需要指定数据类型,所以我们也不需要通过继承的形式来统一一组类的类型,

    换句话说 所有的对象其实都是object类型,所以在python当中其实处处是多态。

    #鸭子类型

    print()#所有对象都是鸭子类型

    不是明确的通过继承实现的多态,而是通过一个模糊的概念来判断这个函数能不能接受这个类型的参数

    #封装

    广义上的封装

    class 类名:

      def 方法1(self):pass

    是为了只有这个类的对象才能使用定义在类中的方法

    狭义上的封装

    把一个名字藏在

    class Goods:

      __discount = 0   #私有的静态变量

      print(__discount)

    print(Goods.__discount) #在类的外部不能引用私有的静态变量

    类中的静态变量和方法名在程序加载的过程中就已经执行完了,不需要等待调用。

    在这个类加载完成之前,Goods这个名字还没有出现在内存空间中

    私有的静态属性可以在类的内部使用,用来隐藏某个变量的值

    class Goods:
        __discount = 0
        # 变形:_类名__私有变量
    # print(Goods.__dict__)
    print(Goods._Goods__discount)
    '''编程规范的角度出发
    我们不能在类的外部是使用私有的变量'''
    class Student:
        def __init__(self,name,age):
            self.__name = name
            self.age = age
        def name(self):
            return self.__name
    zhuge = Student('诸葛',20)
    print(zhuge.name())
    print(zhuge.age)
    zhuge.age = 'adas'
    print(zhuge.age)
    从外部可以查询私有变量

    类中的私有成员:

    1.私有的静态属性

    2.私有的对象属性

    3.私有的方法

    我们为什么要定义一个私有变量?

    1.我不想让你看到这个值

    2.我不想让你修改这个值

    3.我想让你在修改这个值的时候有一些限制

    4.有些方法和属性不希望子类继承

  • 相关阅读:
    djangoadmin实现文件上传下载
    Apscheduler详解(转)
    django集成Apscheduler3
    springboot实现token鉴权
    xss攻击入门
    回顾2012——运维工作周年祭
    9个常用iptables配置实例
    ardunio 实验:超声波测距、声光报警模拟倒车雷达
    一款我用了好多年的多线程FTP软件
    线程Thread基础学习(2)
  • 原文地址:https://www.cnblogs.com/caoshitong/p/9555606.html
Copyright © 2011-2022 走看看