大数据学习之初识构造函数

魔术方法(init)&(str)方法

构造函数__init__(self)

  • 构造函数被称为类的初构造函数或者初始化方法,当创建这个类的实例时会调用。一般对实例的属性进行初始化,如果不提供,python会默认给出__init__方法。

构造函数的作用

  • 构建类对象的时候会自动运行
  • 构建类对象的传参会传递给构造方法,借此特性可以给成员变量赋值

1.构造方法也是成员变量,所以参数列表中也要self

2.构造方法内定义成员变量,需要使用self关键字,这是因为,变量是定义在构造方法内部的,如果要成为成员变量,需要用self来表示。

3.在方法内使用成员变量需要使用self。这是方法要求跟你是不是构造方法没关系。
上面的__init__(self)构造方法是python中类内置方法之一。这些内置方法各自有各自的功能,这些内置方法我们称之为:魔术方法

# 需求:通过Peron类创建的任意一个对象,都有姓名和年龄
class Person:
    # python所有类中有一个内置函数可以让我们使用__init__
	def __init__(self,name,age):
        # 定义成员变量
		self.name = name
        self.age = age
    def eat(self):
        print('吃饭')

    def call(self, name):
        print(f'打电话给{name}')

# 创建对象的时候,类后面的小括号其实本质上就是调用类中的__init__()函数
p1 = Person('张三',18)
p1.eat()
p1.call('xiaohu')
print(p1.name)
print(p1.age)


p2 = Person('李四',16)
p2.eat()
p2.call('mayun')
print(p2.name)
print(p2.age)

常用的内置方法还有__str__(self)

class Student:
    def __init__(self,age,name):
        self.name=name
        self.age=age

stu=Student('武大郎',31)
print(stu)
print(str(stu))

输出<main.Student object at 0x000001E5F7029388>
<main.Student object at 0x000001E5F7029388>

class Student:
    def __init__(self,age,name):
        self.name=name
        self.age=age

    def __str__(self):
        return f'Student类对象,name:{self.name},age:{self.age}'

stu=Student('武大郎',31)
print(stu)
print(str(stu))

输出Student类对象,name:31,age:武大郎
Student类对象,name:31,age:武大郎

在我们提供魔术方法之后,转变字符串的行为就改变了。不再是输出内存地址了,而是我们决定应该输出什么东西

posted on 2024-01-15 21:32  合肥彭于晏  阅读(2)  评论(0编辑  收藏  举报

导航