一日一技:在Python类里面初始化自己

简介: 一日一技:在Python类里面初始化自己

摄影:产品经理

厨师:kingname

当我们写一个类的时候,一般会覆写 __init__方法,来初始化一些数据。例如:

class People:
    def __init__(self, name, age, salary):
        self.name = name
        self.age = age
        self.salary = salary
    def intro(self):
        print(f'我的名字是{self.name},我今年{self.age}岁了,我的月薪为{self.salary}元')

这里的 __init__叫做 构造函数。它负责在类初始化为实例的时候,初始化必要的数据。如下图所示:


每当我们需要初始化一个实例的时候,都要传入 nameagesalary这三个参数。

有时候,比如我们想简化这个操作,或者想埋下一个彩蛋时,可以在类里面写一个类方法,这个类方法能够返回一个隐藏的实例:

class People:
    def __init__(self, name, age, salary):
        self.name = name
        self.age = age
        self.salary = salary
    def intro(self):
        print(f'我的名字是{self.name},我今年{self.age}岁了,我的月薪为{self.salary}元')
    @classmethod
    def kingname(cls):
        return cls('kingname', 26, 999999999)

当我们要初始化 kingname这个实例的时候,直接使用 People.kingname()即可,运行效果如下图所示:

这个例子有什么作用呢?

例如在Scrapy的pipline里面,我们如何把settings.py中的配置信息传入到pipeline里面呢?

在老版本的Scrapy中,我们可以使用如下代码来实现:

from scrapy.conf import settings
MONGODB_URI = settings['MONGODB_URI']

但这种写法在新版的Scrapy中已经被移出了。官方文档中建议的新写法,就是本文介绍的:

目录
相关文章
|
1月前
|
安全 Python
在Python中导入类
在Python中导入类
21 1
|
7天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
44 0
|
7天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
23 0
|
8天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
29天前
|
Python
Python类(class)中self的理解
Python类(class)中self的理解
17 0
|
29天前
|
Python
Python类定义:从小白到专家的旅程
Python类定义:从小白到专家的旅程
7 0
|
29天前
|
Python
Python类与对象:深入解析与应用
本文介绍了Python中的核心概念——类和对象,以及它们在面向对象编程中的应用。类是用户定义的类型,描述具有相同属性和行为的对象集合;对象是类的实例,具备类的属性和方法。文章通过示例讲解了如何定义类、创建及使用对象,包括`__init__`方法、属性访问和方法调用。此外,还阐述了类的继承,允许子类继承父类的属性和方法并进行扩展。掌握这些概念有助于提升Python编程的效率和灵活性。
|
1月前
|
机器学习/深度学习 设计模式 开发者
python类用法(四)
python类用法(四)
18 0
|
1月前
|
Python
python类用法(三)
python类用法(三)
16 0
|
1月前
|
Python
python类用法(二)
python类用法(二)
18 0