python_内置成员及方法分类

本文深入探讨了Python中类方法的四种类型:对象方法、类方法、绑定类方法和静态方法。详细介绍了每种方法的定义、特点及调用方式,并通过实例演示了如何在类中实现这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#内置成员

__dict__:获取类/对象的所属成员组成的集合   *

__doc__:获取类的文档信息   *

__name__:获取类名称的字符串  

__module__:获取当前类所在的文件的名称,如果是当前文件,显示为main(后面会讲其他的)

__bases__:获取当前类的父类列表

#方法的分类
1.对象方法:该方法中会直接传入当前对象
调用方式:对象.成员方法()
特征:会将当前对象传入方法中

2.类方法:在方法中会直接传入当前类
	@classmethod: 不需要实例化,直接类名.方法名()来调用。
    调用方式:类.成员方法()
    特征:会将当前类传入方法中

3.绑定类的方法:在方法中不会传入类或者对象的方法
    调用方式:类.成员方法()
    特征:不会传入类或者对象,只能通过类来调用

4.静态方法:与类和对象无关,但是存在于类结构中的方法
	@staticmethod: 返回函数的静态方法。
    调用方式:类.成员方法() 或者对象.成员方法()
    特征:类或者对象都可以调用
# 方法的分类
# 1. 对象方法(传入对象)
class Human():
    # 对象方法
    def say(self):
        print(self)
        print("人类叫起来很动听")
    # 类方法  在方法中会直接传入当前类
    @classmethod
    def run(cls):
        print(cls)
        print("人类跑起来piapia的")
    # 静态方法:与类和对象无关,但是存在于类结构中的方法
    @staticmethod
    def move(name,sex,age):
        print("人类之间的迁徙活动是生存本能")
    # 绑定类方法
    def eat():
        print("人类能吃的全吃了,不能吃的正在变得能吃")
wenguang = Human()
wenguang.say()
wenguang.run()
Human.run()
# 使用对象调用静态方法
wenguang.move()
# 使用类调用静态方法
Human.move("人类","女",16)
print(Human.__dict__)
print(dir(wenguang))
wenguang.eat()
<think>好的,用户想了解Python集合的内置方法及使用说明。首先,我需要回忆Python集合的基本特性,比如集合是无序、不重复的元素集合。然后,根据引用中的内容,用户提到了集合的用途,如关系运算和去重,还有定义方式、类型转换等。需要确保覆盖这些方面。 首先,集合的内置方法可能包括交集、并集、差集等关系运算,以及添加、删除元素等操作。引用[2]中提到了交集用&或.intersection(),并集用|或.union(),差集用-或.difference(),这些需要详细说明。还有去重的方法,用户可能想知道如何利用集合进行列表去重,并保持顺序,这里引用[2]提到了两种方法,需要解释清楚。 另外,用户可能需要知道常用方法如add(), remove(), discard()的区别,比如remove()在元素不存在时会报错,而discard()不会。还有pop()方法,因为集合是无序的,所以pop()是随机弹出一个元素,这点需要强调。 然后,关于成员运算in和循环取值,这部分相对基础,但还是要提到。还有像update()方法,可以批量添加元素,这可能对用户有用。引用[2]中提到的isdisjoint()方法用于判断两个集合是否没有交集,这也是一个有用的方法。 用户可能还会对性能或应用场景有疑问,比如为什么用集合去重比较高效,因为集合是基于哈希表实现的,查找速度快。同时,需要注意集合只能包含不可变类型,比如数字、字符串、元组等,不能包含列表或字典,这点在类型转换时需要说明。 在结构上,按照用途、定义、类型转换、常用操作、内置方法分类来组织,这样用户容易理解。还要注意代码示例的正确性,比如用大括号创建集合,或者用set()函数转换列表。可能需要用示例展示如何做交集、并集等操作,以及去重的具体代码。 最后,确保回答符合用户的要求,引用相关的站内引用,但用户提供的引用中有部分是关于字典的内容,可能需要忽略。主要参考引用[2],其中详细列出了集合的方法。同时,检查是否有遗漏的方法,比如symmetric_difference_update()或者其他不常用的方法,简要提及即可。 总结步骤:先介绍集合的基本概念和用途,然后分点讲解定义方式、类型转换,再详细说明关系运算和去重,接着列出常用的内置方法并给出示例,最后总结使用场景和注意事项。这样结构清晰,用户能逐步了解集合的各种功能和使用方法。</think>### Python集合内置方法详解 #### 一、集合的用途 1. **关系运算**:集合交集、并集、差集等操作 2. **去重**:自动过滤重复元素 #### 二、定义方式 - 使用大括号:`my_set = {1, 2, 3}` - 使用构造函数:`empty_set = set()`(不可用`{}`定义空集合,因其表示空字典) - 类型转换示例: ```python my_list = [1, 2, 2, 3] unique_set = set(my_list) # 输出 {1, 2, 3} ``` #### 三、关系运算方法 1. **交集** - 运算符:`&` - 方法:`.intersection()` ```python s1 = {1, 2, 3} s2 = {2, 3, 4} print(s1 & s2) # 输出 {2, 3} ``` 2. **并集** - 运算符:`|` - 方法:`.union()` ```python print(s1 | s2) # 输出 {1, 2, 3, 4} ``` 3. **差集** - 运算符:`-` - 方法:`.difference()` ```python print(s1 - s2) # 输出 {1} ``` 4. **对称差集**(仅属于一个集合的元素) - 运算符:`^` - 方法:`.symmetric_difference()` ```python print(s1 ^ s2) # 输出 {1, 4} ``` #### 四、常用内置方法 1. **基础操作** - 长度:`len(s1)` - 成员判断:`3 in s1` - 循环遍历:`for item in s1: ...` 2. **增删操作** - 添加元素:`.add(element)` ```python s1.add(4) # s1 变为 {1, 2, 3, 4} ``` - 批量更新:`.update(iterable)` ```python s1.update([5, 6]) # s1 变为 {1, 2, 3, 4, 5, 6} ``` - 删除元素: - `.remove(element)`:元素不存在则报错 - `.discard(element)`:元素不存在不报错 - `.pop()`:随机移除一个元素 3. **集合关系判断** - 子集:`s1 <= s2` 或 `.issubset()` - 父集:`s1 >= s2` 或 `.issuperset()` - 无交集判断:`.isdisjoint(s2)` #### 五、去重应用 1. **简单去重**(不保留顺序) ```python my_list = [3, 1, 2, 2, 3] unique_list = list(set(my_list)) # 输出可能为 [1, 2, 3] ``` 2. **保留顺序去重**(Python 3.7+) ```python seen = set() result = [x for x in my_list if not (x in seen or seen.add(x))] ``` #### 六、注意事项 - 集合元素必须为**不可变类型**(如数字、字符串、元组) - 集合本身是**可变对象**,但可通过`frozenset`创建不可变集合
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值