1、 方法__init__() ,self形参的作用等
# 类中的函数称为方法 ,不在类中的叫函数,在类里面的函数叫方法,之前学的有关函数的一切适用于方法,唯一重要的差别是调用方法的方式
# __init__()是一个特殊的方法,每当你Dog类创建新实例时,Python都会自动运行它
# __init__()里面有3个参数【self, name, age】,这个方法中 self形参是必不可少的,而且必须在其它形参的前面
# 为啥必须定义形参self?, 因为Python调用这个方法来创建Dog实例时,将会自动传递实参self,它是一个指向实例本身的引用
# __init__()里面定义的两个变量都有前缀self,以self为前缀的变量可供类中所有方法使用,可以通过类的任何实例来访问
# self.name = name 获取与形参name相关联的值,并将其赋给变量name,然后这个变量被关联到当前创建的实例,可以通过实例访问的变量称为属性
# self.age = age 作用同上name
# Dog类中定义了2个方法分别是sit(),roll_over()他们目前不需要传参,所以只定义了形参self,类中的所有方法必须得定义self形参
# 当前Dogs.py 文件中我还定义了一个函数sits(),函数不在类中,所以不用定义形参self
#------------------------------------Dogs.py 文件
class Dog:
def __init__(self, name, age):
""" 初始化属性name和age"""
self.name = name
self.age = age
def sit(self):
"""模拟狗狗收到命令蹲下"""
print(f"{self.name}它已近蹲下了")
def roll_over(self):
"""模拟狗狗在地上打滚"""
print(f"{self.name}已近在地上打滚了")
def sits():
"""狗狗收到命令蹲下"""
print("小狗已近蹲下了")
#--------------------------------------------------------- Dogmanagement.py文件
# from Dogs import * # 导入 Dogs这个文件中所有的东西
# from Dogs import sits # 导入 Dogs这个文件中 sits函数 可以直接使用sits()方法
# 导入 Dogs这个文件中的Dog类
from Dogs import Dog
mydog = Dog("小狗", 3)
print(f"我养的狗狗叫{mydog.name},今年{mydog.age}岁了")
# 输出结果:我养的狗狗叫小狗,今年3岁了
mydog.sit()
# 输出结果:小狗它已近蹲下了
mydog.roll_over()
# 输出结果:小狗已近在地上打滚了
my_cat = Dog("喵喵", 1)
my_cat.sit()
# 输出结果:喵喵它已近蹲下了
print(f"我养的猫叫{my_cat.name},今年{my_cat.age}岁了")
# 输出结果:我养的猫叫喵喵,今年1岁了
2、根据类创建实例
# 举例代码处:mydog = Dog("小狗", 3)
# 其中 Dog("小狗", 3)会创建一个小狗特定的实例,然后将实例赋给了变量mydog
2.1 访问属性
# 要访问实例的属性,可以使用句点表示法 :mydog.name/mydog.age 先找到实例mydog再查找该实例关联的属性name/age
# 举例代码处: print(f"我养的狗狗叫{mydog.name},今年{mydog.age}岁了")
2.2 调用方法
# 举例代码处:
# mydog.sit()
# mydog.roll_over()
# 根据Dog类创建的实列后,就能使用句点表示法来调用Dog类中的任何方法
# 2.4 创建多个实例
# 可按需求根据类创建任意数量的实例,以下创建了2个实例
# mydog = Dog("小狗", 3)
# my_cat = Dog("喵喵", 1)