Python之构造函数

本文详细介绍了Python中的构造函数,包括其特点(自动调用创建对象并赋值)、使用示例(带参数的构造函数和self的应用),以及构造函数与成员函数的区别。

参考:

Python之构造函数_构造函数 python-优快云博客

构造函数的特点:

创建对象;给对象的成员变量赋值

构造函数和成员函数之间的区别:

  1. 成员函数需要被手动调用,但是,构造函数在创建对象的过程中是自动被调用的
  2. 对于同一个对象而言,成员函数可以被调用多次,但是,构造函数只能被调用一次
#1.构造函数被调用
'''成员函数需要被手动调用,但是,构造函数在创建对象的过程中是自动被调用的'''

class Check():
    #成员变量
    num1 = 0
    s1 = ""
 
    #成员方法
    def show(self):
        print("showing")
 
    #构造函数
    def __init__(self):
        print("构造函数被执行了")
 
c = Check()          #构造函数被执行了
c.show()             #showing
#2.给构造函数添加参数

class Check1():
    #成员变量
    num1 = 0
    s1 = ""
 
    #成员方法
    def show(self):
        print("showing")
 
    #构造函数
    def __init__(self,*s):     #设置不定长参数
        print("构造函数被执行了~~~")
 
#注意1:当在类中定义了构造函数,并且给构造函数设置了参数,系统将不再提供无参的构造函数
#在创建对象的时候,注意参数的匹配问题
#注意2:在同一个类中,构造函数只能出现一次
c1 = Check1(10,20)            #构造函数被执行了~~~
c1 = Check1()              #构造函数被执行了~~~

    #构造函数
    def __init__(self,*s):     #设置不定长参数
        print("构造函数被执行了~~~") 

#3.构造函数的作用
'''对于同一个对象而言,成员函数可以被调用多次,但是,构造函数只能被调用一次'''
class Check2():
    #成员变量
    num1 = 0
    s1 = ""
 
    #成员方法
    def show(self):
        print("showing")
 
    #构造函数
    #构造函数的形参列表一般和成员变量有关【主要给成员变量赋值】
    def __init__(self,n,s):
        print(n,s)
        num1 = n
        s1 = s
 
c2 = Check2(10,"abc")           #10 abc
print(c2.num1,c2.s1)        #0
#4.self的作用:通过self区分成员变量和局部变量
class Check3():
    #成员变量
    num1 = 0
    s1 = ""
 
    #成员方法
    def show(self):
        print("showing")
 
    #构造函数
    #构造函数的形参列表一般和成员变量有关【主要给成员变量赋值】
    def __init__(self,n,s):
        print(n,s)
        #此时的num1并不是一个局部变量,而是一个成员变量
        self.num1 = n
        self.s1 = s
 
c3 = Check3(11,"abc")           #11 abc
print(c3.num1,c3.s1)        #11 abc
#5.使用self之后:可以省略成员变量的定义
class Check4():
    #成员方法
    def show(self):
        print("showing")
 
    #构造函数
    def __init__(self,num1,s1):
        print(num1,s1)
        #定义成员变量,成员变量赋初始值
        self.num1 = num1
        self.s1 = s1
 
c4 = Check4(12,"abc")           #12 abc
print(c4.num1,c4.s1)        #12 abc

### Python构造函数 `__init__` 的概念和用法 #### 定义与作用 在 Python 类中,构造函数是指当创建类的一个新实例时会自动执行的方法。这个特殊方法名为 `__init__` ,它用于初始化新创建的对象状态。每当根据此类创建新的对象时就会调用此方法来分配资源[^1]。 ```python class Person: def __init__(self, name, age): self.name = name # 初始化属性name self.age = age # 初始化属性age ``` 上述代码展示了如何定义一个简单的 `Person` 类及其构造函数。在这个例子中,每次创建一个新的 `Person` 对象时都会传递两个参数给 `__init__` 方法——名字 (`name`) 和年龄 (`age`) 。这两个值随后被用来设置该对象的相应属性[^2]。 #### 参数说明 构造函数可以接受任意数量的位置参数以及关键字参数。第一个参数总是 `self` ,代表当前正在处理的新实例;其余则取决于开发者的需求而定。如果希望某些字段有默认值,则可以在定义时指定它们: ```python class Car: def __init__(self, make='Toyota', model='Corolla'): self.make = make # 默认汽车品牌为'Toyota' self.model = model # 默认车型为'Corolla' ``` 这里展示的是带有可选参数的构造器实现方式。如果没有提供特定的品牌或型号,在实例化过程中将会采用预设好的缺省选项[^3]。 #### 实际应用案例 下面是一个更复杂的示例,其中不仅包含了基本的数据成员赋值操作,还涉及到了其他逻辑处理部分: ```python from datetime import date class Employee: def __init__( self, first_name: str, last_name: str, birth_year: int, hire_date: tuple[int, int]): # (year, month) self.first_name = first_name # 员工姓氏 self.last_name = last_name # 员工名称 self.birthdate = date(birth_year, 1, 1) # 出生日期,默认一月一日 self.hire_date = date(*hire_date) # 雇佣日期 emp_alex = Employee('Alex', 'Smith', 1985, (2017, 6)) print(f"{emp_alex.first_name} was hired on {emp_alex.hire_date}.") ``` 这段程序片段里,除了常规的信息设定外,还将字符串类型的年份转换为了标准库中的 `datetime.date` 对象以便后续可能涉及到的时间计算需求得到满足。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值