欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > 构造方法/构造器

构造方法/构造器

2025/4/30 11:44:15 来源:https://blog.csdn.net/2303_80050865/article/details/141106700  浏览:    关键词:构造方法/构造器

目录

一、看一个需求

1、看一个需求

二、基本介绍

1、基本介绍

2、解读构造方法

三、注意事项和使用细节


一、看一个需求

1、看一个需求

1)前面我们在创建Person类的对象时,是先把一个对象创建好后,再给他的年龄、姓名属性赋值

2)如果现在要求,在创建Person类的对象时,就直接指定这个对象的属性(年龄、姓名),该怎么做?-->使用构造方法(构造器)

二、基本介绍

1、基本介绍

构造方法(构造器)基本语法:

def __init__(self,参数列表):

        代码...

2、解读构造方法

1)在初始化对象时,会自动执行__init__方法

class Person:# 构造方法/构造器def __init__(self):print("__init__执行了")p1=Person()
p2=Person()

 

2)在初始化对象时,将传入的参数,自动传递给__init__方法

class Person:name=Noneage=None# 构造方法/构造器# 构造方法是完成对象的初始化任务def __init__(self,name,age):print(f"__init__执行了 {name} {age}")# 把接收到的name和age赋给属性(name、age)# self就是当前创建的对象self.name=nameself.age=age# 创建对象
p1=Person("kobe",20)
print(f"p1的信息 {p1.name} {p1.age}")p2=Person("tim",30)
print(f"p2的信息 {p2.name} {p2.age}")

 

3)构造方法是py预定义的,名称是__init__,注意init的前后都有两个_

三、注意事项和使用细节

1、应该类只有一个__init__方法,即使写了多个,也只有最后一个生效

class Person:name=Noneage=Nonedef __init__(self,name,age):print(f"__init__执行了 {name} {age}")self.name=nameself.age=agedef __init__(self,name):print(f"__init__执行了 {name}")self.name=name
# 报错
# p1=Person("kobe",20)
# 后面的__init__生效
p1=Person("kobe")
print(f"p1的信息:name={p1.name} age={p1.age}")

 

2、 python可以动态的生成对象属性

class Person:# name=None# age=Nonedef __init__(self,name,age):print(f"__init__执行了 {name} {age}")self.name=nameself.age=agep1=Person("tim",30)
print(f"p1的信息:name={p1.name} age={p1.age}")

 

3、构造方法不能有返回值,比如,你返回字符串,会报 TypeError: __init__() should return None, not 'str'

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词