目录
9.1 创建和使用类
这里以我们需要打印一条dog的名字、年龄、正坐着、在打滚的信息为例(根据代码更好理解)。
9.1.1 类的定义
个人理解,类与函数有点相似,但也有很大的不同。
一个类以 class 类名称(首字母大写,区分函数)开始。类中def 引导的叫方法,例如:__init__(),sit()等等。要调用参数,__init__()方法是类中必不可少的,()中的形参self也是必须存在的,必须放在其他形参前面。self.参数可以在整个类中使用。
9.1.2 创建Dog类(class)
class Dog:
def __init__(self, name, age): # init前后两下滑线
self.name = name # 将形参name的值给self.name
self.age = age
def sit(self):
print(f"My dog {self.name} is now sitting, it is {self.age} years old")
def roll_over(self):
print(f"My dog {self.name} is rolling over")
9.2 使用类和实例
9.2.1 根据类创建实例、实例的使用
根据类所创建的对象叫实例,例如下方的my_dog。使用类即 实例名 = 类名()即可,此时()中不需要传递self,只需要传递其他参数。实例和类中方法的使用为 实例名.方法。
以下代码跟根据上述创建的类进行。
my_dog = Dog("Bob", 3)
print(my_dog.name) # 访问属性
my_dog.sit() # 使用方法
my_dog.roll_over()
your_dog = Dog("john", 2) # 创建多个实例
print(your_dog.name)
your_dog.sit()
# 等等......
# 输出:
# Bob
# My dog Bob is now sitting, it is 3 years old
# My dog Bob is rolling over
# john
个人总结:比起函数,类的使用可以减少很多参数传递的麻烦,实例的使用可以很方便的去调用方法。
9.2.2 给属性指定默认值及对属性的值修改
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
self.size = "10kg" # 给属性指定默认值
def size_weight(self):
self.size = "20kg"
print(f"my dog size is {self.size}")
my_dog = Dog("Bob", 3)
print(my_dog.size)
my_dog.size = "15kg" # 直接修改
print(my_dog.size)
my_dog.size_weight() # 在方法中修改
# 输出:
# 10kg
# 15kg
# my dog size is 20kg
本人新手,若有错误,欢迎指正;若有疑问,欢迎讨论。