python类用法(二)

简介: python类用法(二)

python类用法(二)

、类的特殊方法

在Python中,有一些特殊的方法(也叫魔术方法或双下划线方法)用于定义类的行为。这些方法通常具有特定的命名格式,如__init____str____eq__等。

1. __init__ 方法

__init__ 方法是一个类的构造函数,当创建类的新实例时自动调用。它通常用于初始化新对象的属性。

python复制代码

 

class Person:

 

def __init__(self, name, age):

 

self.name = name

 

self.age = age

2. __str__ 方法

__str__ 方法返回一个描述对象的字符串,通常用于print函数或字符串格式化。

python复制代码

 

class Person:

 

def __init__(self, name, age):

 

self.name = name

 

self.age = age

 

 

 

def __str__(self):

 

return f"Person(name={self.name}, age={self.age})" 

 

 

 

person = Person("Alice", 30)

 

print(person) # 输出: Person(name=Alice, age=30)

3. __eq__ 方法

__eq__ 方法用于比较两个对象是否相等。

python复制代码

 

class Person:

 

def __init__(self, name, age):

 

self.name = name

 

self.age = age

 

 

 

def __eq__(self, other):

 

if isinstance(other, Person):

 

return self.name == other.name and self.age == other.age

 

return False 

 

 

 

person1 = Person("Alice", 30)

 

person2 = Person("Alice", 30)

 

person3 = Person("Bob", 25)

 

print(person1 == person2) # 输出: True

 

print(person1 == person3) # 输出: False

、类的封装和数据隐藏

类的封装是将数据(变量)和对其操作的方法捆绑在一起,形成一个独立的单元。Python通过约定俗成的命名方式(如使用单个下划线、双个下划线前缀等)来实现数据隐藏。

1. 单个下划线前缀

单个下划线前缀通常表示该属性或方法是“受保护的”或“内部使用的”,但这不是强制性的,外部代码仍然可以访问。

python复制代码

 

class MyClass:

 

def __init__(self):

 

self._private_var = "This is a private variable"

2. 双个下划线前缀

双个下划线前缀会导致Python解释器对属性名称进行变形(名称重整),使得外部代码无法直接访问。这是一种较强的封装方式。

python复制代码

 

class MyClass:

 

def __init__(self):

 

self.__private_var = "This is a truly private variable" 

 

 

 

# 外部代码无法直接访问 __private_var

 

# my_instance._MyClass__private_var # 可以通过这种方式访问,但不建议这样做

 

 

目录
相关文章
|
3天前
|
Python
Python 一步一步教你用pyglet制作可播放音乐的扬声器类
Python 一步一步教你用pyglet制作可播放音乐的扬声器类
14 0
|
10天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
53 0
|
10天前
|
索引 Python
python 格式化、set类型和class类基础知识练习(上)
python 格式化、set类型和class类基础知识练习
33 0
|
12天前
|
Python
python学习12-类对象和实例对象
python学习12-类对象和实例对象
|
18天前
|
Python
python中threads.append的用法
将线程对象`t`添加到`threads`列表便于管理与控制线程,如等待所有线程完成。通过迭代列表并调用`join`方法,可依次等待每个线程执行完毕,实现同步。代码示例: ```python for t in threads: t.join() print("All threads are done!") ``` `join`方法使当前线程阻塞,直到线程执行结束。所有线程完成后,输出"All threads are done!"。
15 1
|
1月前
|
Python
Python类(class)中self的理解
Python类(class)中self的理解
19 0
|
1月前
|
Python
Python类定义:从小白到专家的旅程
Python类定义:从小白到专家的旅程
8 0
|
1月前
|
Python
Python类与对象:深入解析与应用
本文介绍了Python中的核心概念——类和对象,以及它们在面向对象编程中的应用。类是用户定义的类型,描述具有相同属性和行为的对象集合;对象是类的实例,具备类的属性和方法。文章通过示例讲解了如何定义类、创建及使用对象,包括`__init__`方法、属性访问和方法调用。此外,还阐述了类的继承,允许子类继承父类的属性和方法并进行扩展。掌握这些概念有助于提升Python编程的效率和灵活性。
|
1月前
|
Python
python函数用法(五)
python函数用法(五)
24 1
|
1月前
|
Python
python函数用法(四)
python函数用法(四)
22 0