大数据学习之初识构造函数
魔术方法(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:武大郎
在我们提供魔术方法之后,转变字符串的行为就改变了。不再是输出内存地址了,而是我们决定应该输出什么东西