python中的__init__(self)是什么意思呢

作者&投稿:桓妮 (若有异议请与网页底部的电邮联系)
python中的__init__()是什么意思呢~

python中的__init__()时类的初始化函数,比如:
class Obj: def __init__(): print 1obj = Obj() #这时候调用__init__这个方法如果解决了您的问题请采纳!如果未解决请继续追问

__init__()是类的构造函数,在建立对象时调用。self是对“对象”自身的引用。相当于c++中的this。
python规定:访问类成员时,需要在前面加上this。这里,this.name = name表示为Person类添加了属性name。
如果变量前不加this,则视为局部变量。这个变量会在方法运行结束后失效。而属性在整个类的范围内都是有效的。
self是只有在类中才会有的。self在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。
但self的名称并不是一定的,在python中self不是关键词。在初始化函数中可以把self换成任意名字,例如myClass:


class Person: def _init_(myClass,name): myClass.name=name def printName(myClass): print 'My name is:',myClass.namep=Person('Bill')print p

那么self到底是什么意思呢?self其实和C++的this是一样的,只不过python中self在类的方法中必须以传入参数写在函数的参数列表中。它实际上是指向类的对象的一个类似于C++中指针的私有变量。

Python中,__init__()方法是所谓的对象的“构造函数”,负责在对象初始化时进行一系列的构建操作

假设有如下类:

class worker:
    pass

在Python中,对某个类实例进行成员赋值,可以创建不存在的成员:

>>>a=worker()
>>>a.pay=55000
>>>a.name='Bob'

如果对于每一个worker类的实例对象,都要进行如此赋值的话,这个类会变得很难使用

另外,对于用于特殊场合的类,可能要求在对象创建时,进行连接数据库、连接FTP服务器、进行API验证等操作,这些初始化操作,都可以封装在__init__()方法中进行


__init__方法使用如下规则定义:

class ex:
    def __init__(self):
        pass

__init__方法必须接受至少一个参数即self,Python中,self是指向该对象本身的一个引用,通过在类的内部使用self变量,类中的方法可以访问自己的成员变量,简单来说,self.varname的意义为”访问该对象的varname属性“

当然,__init__()中可以封装任意的程序逻辑,这是允许的,__init__()方法还接受任意多个其他参数,允许在初始化时提供一些数据,例如,对于刚刚的worker类,可以这样写:

class worker:
    def __init__(self,name,pay):
        self.name=name
        self.pay=pay

这样,在创建worker类的对象时,必须提供name和pay两个参数:

>>>b=worker('Jim',5000)

Python会自动调用worker.__init__()方法,并传递参数。


通常情况下,self形参由Python自动赋值,但是,在类继承中,并不是这样

例如,Python的HTML处理工具HTMLParser,是一个基于OOP模型的工具,要使用该工具,必须编写一个类,继承html.parser.HTMLParser类,并重载一系列方法,以定制自己的功能

from html.parser.HTMLParser

class ex2(HTMLParser):
    def __init__(self):
        HTMLParser.__init__(self)

此处,需要调用了HTMLParser类的__init__方法,而且,此处手动给HTMLParser.__init__()方法的self形参赋值,事实上,如果不显式指定self形参的值,Python不会在此处自动为HTMLParser.__init__()方法的self形参进行赋值

如此设计的原因是,在子类中需要获得超类的成员和方法,而通过在子类的__init__方法中调用超类的__init__方法,并手动给它传递指向子类的self值,可以使超类的__init__方法将所初始化的变量设置成子类的变量,这样,就可以在子类中直接访问超类的变量了。



__init__(self)这个时类的初始化函数

class Obj:
    def __init__(self):
        print 1
obj = Obj() #这时候__init__这个函数会被调用,self指obj这个对象。

如果解决了您的问题请采纳!
如果未解决请继续追问




学生党如何Python快速入门
Python快速入门门各类函数创建各类面数创建 Python中的丽数是什么?在Python中,function是一组执行特定任务的相关语句。函数有助于将我们的程序分解为更小的模块化块。随着我们的计划越来越大,功能使其更加有条理和易于管理。此外,它避免重复并使代码可重用 创建函数的语法 在Python中,function是一组执行...

python 中不等于怎么表示
!\/usr\/bin\/pythona=1b=2if a==b:print "a 等于 b"if a!=b:print "a不等于b"。Python的表达式写法与C\/C++类似。只是在某些写法有所差别。主要的算术运算符与C\/C++类似。+, -, *, \/, \/\/, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。>>...

python合法的变量名
变量名的作用域介绍:在Python中,变量的作用域是指变量在程序中可访问的范围。Python中有三种类型的变量作用域:全局变量、局部变量和非局部变量(即嵌套函数中的变量)。全局变量是在函数外部定义的变量,可以在整个程序中被访问。局部变量是在函数内部定义的变量,只能在函数内部被访问。非局部变量是在...

Python+中的条件语句用于什么?语法结构是什么?
在Python中,条件语句用于根据条件的真假执行不同的代码块。条件语句允许根据特定条件的结果来选择性地执行代码,以实现程序的控制流程。Python中的条件语句使用 `if`、`elif`(可选)和 `else`(可选)关键字来定义。下面是条件语句的一般语法结构:```python if condition1:当条件1为真时执行的代码...

python代码的注释有几种
python代码的注释有两种。一、python单行注释符号(#)python中单行注释采用#开头,示例:#thisisacomment。二、批量、多行注释符号多行注释是用三引号,例如:输入'''或者""",将要注释的代码插在中间。Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代...

python中% f的使用方法有哪些
1、定义变量sum1和num1,sum1用于存放所有奇数和,num1用于存放数值,并对其赋初始值。2、使用while来实现1-1000以内的循环。3、用if语句实现条件判断,是否为奇数。例如:求模运算,相当于mod,也就是计算除法的余数,比如5%2就得到1。python中%常用的操作有%s,%d,%r。s,%r,%d分别表示字符串以str...

Python语句中的多行连接符有哪些?
在 Python 中,你可以使用以下几种方式来实现多行代码的连接:反斜杠(\\)连接符:当你在一行代码中使用反斜杠作为结尾时,Python 会将下一行的内容视为同一行代码的延续。这种方式允许我们将代码逻辑上的相关部分放在同一行或多行中,提高了代码的可读性。例如:total = 10 + \\ 20 + \\ 30 ...

Python 中的可视化工具介绍
几周前,R语言社区经历了一场关于画图工具的讨论。对于我们这种外人来说,具体的细节并不重要,但是我们可以将一些有用的观点运用到 Python 中。讨论的重点是 R 语言自带的绘图工具 base R 和 Hadley Wickham 开发的绘图工具 ggplot2 之间的优劣情况。如果你想了解更多细节内容,请阅读以下几篇文章:其...

python有哪些注释格式?
python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。一、python单行注释符号(#):井号(#)常被用作单行注释符号,在代码中使用#时,它右边的任何数据都会被忽略,当做是注释。print 1 #输出1,#号右边的内容在执行的时候是不会被输出的。二、批量、多行注释符号:在python中...

python中::-1是什么意思?
[::-1]是对字符串的截取操作,str[a:b]表示截取字符串的a开始的位置,b表示结束位置。b是负数,表示去除后几位。由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。取前3个元素,利用切片操作就是“L[0:3]...

向阳区18336117946: Python中“ -- init--”的意义是什么? -
宰看烧伤: Python中“__init__”的意义是在类实例创建的时候自动会被执行的.这里只是自己重定义了__init__的行为.1. 如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就是递归函数.递归函数的作用.2. 根据下面的阶乘来看下规律,通过规律进行程序的编写,可以达到事半功倍的效果;看阶乘的规律.3. 根据上一步骤,得到递归函数的通用表达式.4. 用lambda关键词能创建小型匿名函数.这种函数得名于省略了用def声明函数的标准步骤.

向阳区18336117946: Python中__init__的意义class NumberCounter(): number = 0 def __init__(self): NumberCounter.number += 1m1 = NumberCounter()m1.__init__()print ... -
宰看烧伤:[答案] __init__是在类实例创建的时候自动会被执行的. 比如,m1 = NumberCounter() 这个时候其实就已经执行了,不需要你再次手动显式调用. m1.__init__() 其实是多余的. __init__函数在定义类时默认已经存在,只不过默认什么都不做.这里只...

向阳区18336117946: python中的 -- init--(self)是什么意思呢 -
宰看烧伤: Python中,__init__()方法是所谓的对象的“构造函数”,负责在对象初始化时进行一系列的构建操作 假设有如下类: class worker:pass在Python中,对某个类实例进行成员赋值,可以创建不存在的成员:>>>a=worker() >>>a.pay=55000 >...

向阳区18336117946: python里面 init的用法 -
宰看烧伤: 打少了一个下划线,应该是__init__,如果写成_init_,则在建立对象时不会得到调用,也就不能初始化hungry.

向阳区18336117946: -- init- - 用法(Python) -
宰看烧伤: 类的构造函数,用于初始化类成员等,只能用__init__ ,不能换其他名字设有个类MyClass, 相当于C++,java里面的 MyClass()

向阳区18336117946: python中的 -- init--()有什么用,求通俗解释 -
宰看烧伤: 用途: 初始化实例的值.这些值一般要供其他方法调用要求: 只初始化值,不要返回值(就是别用return)

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网