目录
一、内置函数:dir()
1、作用
-
可以查看对象内定义的标识符,如函数、类、变量。
注意:模块也是对象!!!
2、语法
![](https://img-blog.csdnimg.cn/35ab63427d724441bbc36de1001f07e9.png)
返回对象的属性列表。 当为dir函数提供一个对象名时,它返回对象中定义的属性名、方法名、类名的列表。 如果不给dir提供对象名,它返回当前对象中定义的属性名、方法名、类名的列表。
3、应用场景
-
Python中有很多模块,有时候搞不清或者记不住这些模块包含属性和方法,一个个查看会很麻烦,这时就可以使用dir函数,了解对象的构造。
4、注意
-
dir()函数不具备输出功能,需要和print()函数配合使用。
5、举例说明-dir()
class Cat:
def __init__(self,name):
# 添加name属性
self.name = name
def eat(self):
print(f'{self.name}爱吃鱼...')
tom = Cat('黏黏')
"""
1.不给dir函数提供对象变量-->所以结果打印当前模块(Cat.py)中的函数,变量,方法,类等的名称
print(dir()):
['Cat', '__annotations__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__spec__', 'tom']
"""
print(dir())
6、举例说明-dir(对象变量)
import Cat
class Dog:
def __init__(self, name):
# 添加name属性
self.name = name
def play(self):
print(f'{self.name}爱玩皮球...')
dog1 = Dog('狗子')
"""
1.不给dir函数提供对象变量-->所以结果打印当前模块(Dog.py)中的函数,变量,方法,类等的名称
print(dir()):
['Cat', 'Dog', '__annotations__', '__builtins__', '__cached__', '__doc__',
'__file__', '__loader__', '__name__', '__package__', '__spec__', 'dog1']
"""
print(dir())
"""
1.给dir函数提供对象变量名,所以结果打印Cat.py模块中的函数,变量,方法,类等的名称
print(dir(Cat)):
['Cat', '__builtins__', '__cached__', '__doc__', '__file__',
'__loader__', '__name__', '__package__', '__spec__', 'tom']
"""
print(dir(Cat))
二、内置方法:__str__()
1、作用
-
返回对象的描述信息,print函数输出时使用。
2、调用时机
-
使用print(对象) 打印对象时,会自动调用。
注意:(1)如果没有定义__str__()方法,默认打印的是,对象的引用地址,也就是对象变量在内存中存储空间的地址。(2)如果定义__str__()方法,打印的是 方法的返回值。
3、语法
![](https://img-blog.csdnimg.cn/906483ea284742288455b6009f05cc91.png)
注意:__str__方法必须返回一个字符串数据。
4、应用场景
-
打印输出对象的属性信息,使用print(对象)。
5、举例说明
"""
定义Cat类,包含属性name和age,打印对象的时候,可以输出对象的姓名和年龄。
类名:Cat
属性:name,age
方法:__str__(),__init__()
"""
class Cat:
def __init__(self,name,age):
# 添加name属性
self.name = name
#添加age属性
self.age = age
# 一般不使用print,直接返回
def __str__(self):
return f'姓名:{self.name},年龄:{self.age}'
# 创建对象
tom = Cat('汤姆',3)
"""
1.类中不定义__str__方法时,
print(tom)的结果是:
<__main__.Cat object at 0x00000000004B25C0>
2.类中定义__str__方法时,
print(tom)的结果是:
姓名:汤姆,年龄:3
"""
print(tom)
三、return和print的区别
- print: 只是打印输出,将内容显示到控制台, 代码中大多数的 print 都是为了验证结果
- return: 可以将函数中的数据返回到函数外部,可以进行其他的操作(print, ....) 。将来的代码 如果存在数据,大多数都是 return。