函数三大特性学习总结

本文介绍了函数的多态和封装特性。多态指一个类的多种状态,在Java中通过继承实现,Python中因参数无需指定类型,处处是多态,还有鸭子类型。封装分广义和狭义,广义封装使类对象才能使用类中方法,狭义封装将变量隐藏,私有成员有静态属性、对象属性和方法等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数的三大特性(二)

#多态:

什么是多态:

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

在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.有些方法和属性不希望子类继承

 

转载于:https://www.cnblogs.com/caoshitong/p/9555606.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值