python中__init__()方法详情
作者:代号零零一 发布时间:2023-06-05 21:22:46
python
类中定义的函数称为方法, init ()方法本质也是一个函数。这个函数的作用是初始化实例后的对象。
具体如下例:
init()
方法的作用是初始化实例后的对象cqueue
。
class CQueue:
类中的函数称为方法 ,这里的__init__()
方法在类实例化是被自动调用。若类定义了__init__()
方法,类的实例化操作会自动调用__init__
方法。
__init__
方法可以有参数,参数通过__init__()
传递到类的实例化操作上。self
代表的是类的实例,而非类。
类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self
。
class CQueue
def __init__(self):
self.A,self.B=[],[]
def appendTail(self,value:int)->None:
self.A.append(value)
def deleteHead(self)->int:
if self.B:
return self.B.pop()
if not self.A:
return -1
while self.A:
self.B.append(self.A.pop())
print(self.B)
return self.B.pop()
if __name__=="__main__":
#类CQueue的实例化,这里的括号()不能丢。
#__init__()方法的作用是初始化实例后的对象cqueue。
cqueue=CQueue()
#调用类中的appendTail()函数,增加元素。
cqueue.appendTail(243)
cqueue.appendTail(2)
cqueue.appendTail(4)
cqueue.deleteHead()
cqueue.deleteHead()
有无__init__的区别,结论如下:
1.在类实例化时,如果类中有__init__
方法,此时调用__init__
方法。
2.若该类没有父类,也没有__init__
方法,则不会有任何操作。即对象不会被初始化。
3.若该类有父类,则去调用该类的父类中__init__
方法。
具体实验如下:
定义三个类:CQueue
、student
、sum
,其中CQueue
、student
是sum
的父类。
实验1说明:
__init__
方法的作用是初始化实例的类。实验2说明:当子类没有__init__方法时,会在父类中进行初始化。
实验3,4说明:
sum(student,CQueue )
,子类sum
没有__init__方法时,会调用父类,并且调用父类中排在前面的父类,这里student类在CQueue前,所以调用student
类中的__init__
方法初始化实例的类。实验5说明:在类及其父类均没有初始化时,实例化的类不会被初始化。
实验1代码:
class CQueue:
#类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。
#__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。
#类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。
def __init__(self):
self.A,self.B=[],[]
def appendTail(self,value:int)->None:
self.A.append(value)
def deleteHead(self)->int:
if self.B:
return self.B.pop()
if not self.A:
return -1
while self.A:
self.B.append(self.A.pop())
print(self.B)
return self.B.pop()
class student:
def __init__(self):
print("测试输出1")
def test1(self):
print("测试输出2")
class sum(student,CQueue ):
def __init__(self):
print("测试输出3")
def test2(self):
print("测试输出4")
if __name__=="__main__":
#类CQueue的实例化,这里的括号()不能丢。
s=sum()
实验结果:
实验2代码:
class CQueue:
#类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。
#__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。
#类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。
def __init__(self):
self.A,self.B=[],[]
def appendTail(self,value:int)->None:
self.A.append(value)
def deleteHead(self)->int:
if self.B:
return self.B.pop()
if not self.A:
return -1
while self.A:
self.B.append(self.A.pop())
print(self.B)
return self.B.pop()
class student:
def __init__(self):
print("测试输出1")
def test1(self):
print("测试输出2")
class sum(student,CQueue ):
# def __init__(self):
# print("测试输出3")
def test2(self):
print("测试输出4")
if __name__=="__main__":
#类CQueue的实例化,这里的括号()不能丢。
s=sum()
实验结果:
实验3,4,省略。
实验5:
class CQueue:
#类中的函数称为方法 ,这里的__init__()方法在类实例化是被自动调用。若类定义了__init__()方法,类的实例化操作会自动调用__init__方法。
#__init__方法可以有参数,参数通过__init__()传递到类的实例化操作上。self代表的是类的实例,而非类。
#类的方法和普通函数的区别只有一个,类的方法必须有一个额外的第一个参数名称,按照惯例它的名称是self。
def __init__(self):
self.A,self.B=[],[]
def appendTail(self,value:int)->None:
self.A.append(value)
def deleteHead(self)->int:
if self.B:
return self.B.pop()
if not self.A:
return -1
while self.A:
self.B.append(self.A.pop())
print(self.B)
return self.B.pop()
class student:
# def __init__(self):
# print("测试输出1")
def test1(self):
print("测试输出2")
class sum(student,CQueue ):
# def __init__(self):
# print("测试输出3")
def test2(self):
print("测试输出4")
if __name__=="__main__":
#类CQueue的实例化,这里的括号()不能丢。
s=sum()
实验结果:
从实验结果可以看出,没有任何操作。
来源:https://blog.csdn.net/qq_37993640/article/details/121532933


猜你喜欢
- HTML表单是网站交互性的经典方式。 本章将介绍如何用Django对用户提交的表单数据进行处理。一、HTTP 请求HTTP协议以"
- 本文介绍了微信小程序滑动选择器的实现代码,分享给大家,具体如下:实现微信小程序滑动选择效果在wxml文件中,用一个picker标签代表选择器
- 1 中国结的组成部分中国结是一种手工编织工艺品,它身上所显示的情致与智慧正是汉族古老文明中的一个侧面。因为其外观对称精致,可以代表汉族悠久的
- element upload上传带参数<el-button style="margin-left: 10px;"
- 1、选取最适用的字段属性MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表
- 对于单页应用,官方提供了vue-router进行路由跳转的处理,本篇主要也是基于其官方文档写作而成。安装基于传统,我更喜欢采用npm包的形式
- 详见代码如下: import threading import time import os import subprocess def g
- 读取图片并将二进制数据转换成base64格式首先,使用nodejs进行数据读取,需要用到nodejs的fs模块进行数据读取:fs.readF
- 一、 只复制一个表结构,不复制数据 select top 0&
- 一、安装selenium打开命令控制符输入:pip install -U selenium火狐浏览器安装firebug:www.firebu
- 一 修改root密码的三种办法方法1: 用SET PASSWORD命令首先登录MySQL。格式:mysql> set password
- 相对于numpy、TensorFlow、pandas这些已经经过多年维护、迭代,对于大多数Python开发者耳熟能详的库不同。今天要给大家介
- 一、下载git可以官网下载,傻瓜步骤安装就行下载好之后需要在idea中配置git,在File》settings》version Contro
- 本文实例讲述了Python三元运算实现方法。分享给大家供大家参考。具体分析如下:Python中没有像C++和Java等语言中的三元运算符,但
- 1、利用Python中的random模块中的choice方法random.choice()可以从任何序列,比如list列表中,选取一个随机的
- 介绍提到爬虫,互联网的朋友应该都不陌生,现在使用Python爬取网站数据是非常常见的手段,好多朋友都是爬取豆瓣信息为案例,我不想重复,就使用
- request库是python的第三方库,它也是目前公认的爬取网页最好的第三方库,其特点是:简单、简洁,甚至用一行代码就能从网页上获取相关资
- sql中增删改查语句:1、“INSERT INTO”语句,用于向表格中增加新的行;2、&ld
- 本文实例讲一下如何用thinkphp实现数据的删除和批量删除吧。预期效果图: 原谅博主对照片的处理是如此的草率吧。。。仍然是 通过
- 1、前言在Python中元组是一个和列表非常类似的数据类型,不同之处就是列表中的元素可以修改,而元组之中的元素不可以修改。2、定义和使用元组