python构造函数重载 在python中构造函数的名称为

python关于class问题 小白求解答Python编程中类的概念可以比作是某种类型集合的描述,如“人类”可以被看作一个类,然后用人类这个类定义出每个具体的人——你、我、他等作为其对象 。类还拥有属性和功能,属性即类本身的一些特性,如人类有名字、身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为 , 如人类拥有吃饭、走路和睡觉等功能 。具体的形式如下:
# 例:类的概念
class 人类:
名字 = '未命名' # 成员变量
【python构造函数重载 在python中构造函数的名称为】 def 说话(内容): # 成员函数
print 内容 # 成员变量赋初始值
某人 = 人类() # 定义一个人类对象某人
某人.名字 = "路人甲"
某人.说话 ('大家好') # 路人甲说话
大家好! # 输出
Python中定义和使用类的形式为:class 类名[(父类名)]:[成员函数及成员变量],类名为这个类的名称,而父类名为可选 , 但定义父类名后,子类则拥有父类的相应属性和方法 。在用类定义成对象时,会先调用__init__构造函数,以初始化对象的各属性,类的各属性(成员变量)均可以在构造函数中定义,定义时只要加上对象指针就好了 。而在对象销毁时,则会调用__del__析构函数,定义类的成员函数时,必须默认一个变量(类似于C中的this指针)代表类定义的对象本身,这个变量的名称可自行定义,下面例子将使用self变量表示类对象变量。
# 例:类定义及使用
class CAnimal:
name = 'unname' # 成员变量
def __init__(self,voice='hello'): # 重载构造函数
self.voice = voice # 创建成员变量并赋初始值
def __del__(self): # 重载析构函数
pass # 空操作
def Say(self):
print self.voice
t = CAnimal() # 定义动物对象t
t.Say() # t说话
hello # 输出
dog = CAnimal('wow') # 定义动物对象dog
dog.Say() # dog说话
wow # 输出
怎么理解Python中重载?通俗理解是python里面没有重载吧?
正常的重载说的应该是函数方法的重载,即两个函数的名称相同但是参数不同是重载,会出现重载的情况一般是函数实现相同功能时,遇到参数类型可能不同的情况,会出现重载,如比较常见的对于加法的实现 , 如果输入两个整数相加则直接使用整数加法,如果两个字符串相加则使用字符串的拼接 。输入的参数类型不同,其实是两个不同的函数,这在那种强类型语言中是可以利用函数重载来实现的,而python中函数类型是动态的各种各样的,所以不需要重载这个机制 。相同函数名就是表示同一个方法 。
python 什么时候用类方法用class来声明一个类,也就是创建了一个类 。使用class关键字,后面接类的名称 , 然后一个冒号
还有两种写法,他们都是等价的 。
声明类以后,我们使用__init__函数来重载构造函数,如图所示,在类中都有一个self参数,他是任何类都有的,代表实例本身,假如我们想要给实例设置一个name属性,那么我们用下面的方法来设置 。__init__后面的参数都可以在创建实例的时候使用 。
当然我们可以任意设置__init__方法的参数个数
通常我们使用__del__函数来重载析构函数,不过如果你没有在类的声明中写这个方法 , 它也会默认加上去的 。所以,通常都不写 。。。
你还可以在类中声明一个方法,然后在创建实例以后 , 我们再调用方法 。声明方法如下:
创建实例
创建实例我们用赋值的方式,我们可以直接将参数输入到类中 。然后用p.name来调用类的属性 。
python有函数重载吗?python中没有函数重载 。
为了考虑为什么python不提供函数重载,首先我们要研究为什么需要提供函数重载 。
函数重载主要是为了解决两个问题:
可变参数类型 。
可变参数个数 。
另外,一个基本的设计原则是,仅仅当两个函数除了参数类型和参数个数不同以外 , 其功能是完全相同的,此时才使用函数重载,如果两个函数的功能其实不同,那么不应当使用重载,而应当使用一个名字不同的函数 。
那么对于情况 1 ,函数功能相同 , 但是参数类型不同,python 如何处理?
答案是根本不需要处理,因为 python 可以接受任何类型的参数 , 如果函数的功能相同,那么不同的参数类型在 python 中很可能是相同的代码,没有必要做成两个不同函数 。
那么对于情况 2 ,函数功能相同,但参数个数不同,python 如何处理?
答案就是缺省参数 。对那些缺少的参数设定为缺省参数即可解决问题 。因为你假设函数功能相同,那么那些缺少的参数终归是需要用的 。好了,鉴于情况 1 跟 情况 2 都有了解决方案 , python 自然就不需要函数重载了 。
更多Python知识请关注Python自学网
关于python构造函数重载和在python中构造函数的名称为的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读