class Dog: # 1
def __init__(self,name,age): # 2 & 3
self.name = name #4
self.age = age
def sit(self):
print(f"{self.name} is now sitting")
def roll_over(self):
print(f"{self.name} rolled over")
my_dog = Dog('Willie',6) #5
print(f"My dog's name is {my_dog}.")
print(f"My dog's {my_dog} years old .")
my_dog.sit()
my_dog.roll_over()
#1.在python中首字母大写的名称指的是类。
#2.方法__init__(): 其又被称为构造器,是一个特殊的方法。每当根据类创建新实例时,python都会自动运行它。该函数总是再类被初始化时执行。也可以理解为使用__init__()方法传递参数,比如赋值给对象属性。必须要注意的是:__init__()前后是两个下划线。
#3.在这个方法的定义中,形参self必不能少,且必须位于其他形参的前面。因为python调用这个方法来创建Dog实例时,将自动传入实参self。每个与实例相关联的方法调用都自动传递实参self,它是一个指向实例本身的引用,让实例能够访问类中的属性和方法。
#4.这两个变量都有前缀self。以self为前缀的变量可供类中的所有方法使用,通过类的任何实例来访问。这两个变量分别获取了形参name、age相关联的值,然后该变量被关联到当前创建的实例。
#5.使用实参Willie和6调用Dog类的方法__init__(),创建一个表示有特定小狗的实例,并使用提供的值来设置属性name和age。
class Car: def __init__(self,make,model,year): self.make = make self.model = model self.year = year self.odometer_reading = 0 #1 def descriptive_name(self): long_name = f"{self.year} {self.make} {self.model}" return long_name.title() def read_odometer(self): print(f"This car has {self.odometer_reading} miles on it.") my_new_car = Car('audi','a8',2023) print(my_new_car.descriptive_name()) my_new_car.read_odometer()
这是一个car的类,与前面的Dog类一样定义了方法__init__(),这个方法第一个形参为(self)
#1.创建实例时,有些属性无需通过形参来定义,可在方法__init__()中其指定默认值。
my_new_car = Car('audi','a8',2023) print(my_new_car.get_descriptive_name()) my_new_car.odometer_reading = 23 my_new_car.read_odmeter()
这个方法是直接通过实例访问它进行修改,它的里程已经变成了23。