当前位置:首页 » 编程语言 » pythoninit函数

pythoninit函数

发布时间: 2023-11-20 04:32:09

python中__init__()括号里面的变量应该如何写,分别表示什么

__init__(self)相当于其它语言中的构造函数,用于在实例的时候给当前类的实例成员初始化用的,那个self关键字用于引用该类当前本身这个实例用的,如果想在创建实例的时候,多做一些初始化值的操作,则可以在self后面多加一些参数!比如:
#类描述学生
class Student:
def __init__(self,name,age): #构造实例时将参数值传递给当前那个实例的成员
self.name=name
self.age=age

s = Student('tom',20) #此时执行的就是__init__(self,name,age)
print(s.name)
print(s.age)
------------------
tom
20

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

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

假设有如下类:

classworker:
pass

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

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

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

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


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

classex:
def__init__(self):
pass

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

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

classworker:
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类,并重载一系列方法,以定制自己的功能

fromhtml.parser.HTMLParser

classex2(HTMLParser):
def__init__(self):
HTMLParser.__init__(self)

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

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

③ 关于python的实例方法问题

题主你好,

python中创建新实例的时候, 如果相应的类中定义了__init__()方法的话, 会自动调用这个方法. 你可能认为名称"init"和"__init__"差不多, 但计算机其实是个很笨的东西, 它会完全按照设计去执行. 也就是说,在设计的时候就已经定死了, 默认情况下, 创建新实例的时候, 会自动调用类中定义的__init__()方法, 只要你的方法名和__init__有一点不一样也不行.

下图是我在官网上找的关于__init__()调用的简单说明:

高亮部分说的大概意思就是上面讲的,如果相应类中定义了__init__()方法,则在创建该类实例的时候会自动调用里面定义的__init__()方法.

-----

希望可以帮到题主, 欢迎追问.

④ Python中“__init__”的意义是什么

Python中“__init__”的意义是在类实例创建的时候自动会被执行的。这里只是自己重定义了__init__的行为。

⑤ python面向对象编程中的f.init()什么意思,为什么要加这一个

f.init()加在中间是为了类Filter定义一个属性blocked并初始化,因为它定义了类的属性blocked,而类Filter的函数filter中要用到这个属性,所以不加f.init()会报错.

同样的s.init(),SPAMFilter子类重写了Filter父类的init函数,并且重新定义了属性blocked,而子类SPAMFilter继承的父类Filter的函数filter中用到了这个属性,所以不加s.init()也会报错.

完整的Python程序如下

class Filter:

def init(self):

self.blocked=[]

def filter(self,sequence):

return [x for x in sequence if x not in self.blocked]

class SPAMFilter(Filter):

def init(self):

self.blocked=['SPAM']

f=Filter()

f.init()

print(f.filter([1,2,3]))

s=SPAMFilter()

s.init()

print(s.filter(['SPAM','SPAM','SPAM','SPAM','eggs','bacon','SPAM']))

源代码(注意源代码的缩进)

⑥ python为什么要有一个init函数 知乎

__init__()是为了做初始化用的

我们初始化得时候不一定要使用__init__()进行初始化,可以直接定义

比如

classtest(self):
test_a="123"

这里就初始话了一个变量test_a = "123",但这样就太固定

而__init__()的好处在于它可以接收参数并初始化

__init__(self,testa):

test_a = testa

这样类就可以初始化话一个动态的变量,更加灵活

而且直接test("123")就将test_a 初始成123了

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

python中的__init__()时类的初始化函数,比如:

classObj:
def__init__():
print1
obj=Obj()#这时候调用__init__这个方法

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

热点内容
云盘视频解压密码 发布:2024-05-19 15:23:17 浏览:848
和平精英怎么改地区位置安卓 发布:2024-05-19 15:19:05 浏览:286
酒店的路由器如何配置 发布:2024-05-19 15:10:44 浏览:500
rpgmaker脚本 发布:2024-05-19 14:48:58 浏览:407
hds存储虚拟化 发布:2024-05-19 14:47:09 浏览:21
mysql数据库分片 发布:2024-05-19 14:42:30 浏览:342
2021款魏派vv6买哪个配置 发布:2024-05-19 14:31:11 浏览:633
前端如何打开第二个服务器地址 发布:2024-05-19 14:30:55 浏览:570
新建文件夹2百度盘 发布:2024-05-19 14:24:07 浏览:608
waslinux安装部署 发布:2024-05-19 14:23:11 浏览:787