Python学习第十天

创建Dog类

根据Dog类创建的每个实例都将存储名字和年龄。我们将赋予了每条小狗蹲下(sit())和打滚(roll_over())的能力:

class Dog():

""" 一次模拟小狗的简单尝试"""

      def _init_(self,name,age):

"""初始化属性name和age"""

      self.name = name

      self.age = age

     def sit(self):

"""模拟小狗被命令时蹲下"""

           print(self.name.title() +"is  now sitting.")

     def roll_voer(self):

           """模拟小狗被命令时打滚"""

           print(self.name.title() +  "is now rolled over!")

首字母大写的名称指的是类。

_init_类中函数的方法  _两个下划线

self必不可少的,只需要给后面name和age形参提供值即可。

根据类创建实例

可将类视为有关如何创建实例的说明

class Dog():

---snip---

my_dog = Dog('willie',6)

 

print("My dog's name is "+my_dog.name.title()+".")

print("My dog is" +str(my_dog.age)+ " years old.")

命名约定

通常快认为首字母大写的名称指的是类(Dog),而小写的名称(my_dog)指的是根据类创建的实例

访问属性

访问实例的属性,可以使用句点表示法,my_dog的属性name的值 :my_dog.name

调用方法

根据Dog类创建实例后,就可以使用句点表示法来调用Dog

class Dog():

---snip---

my_dog = Dog('willie',6)

my_dog.sit()

my_dog.roll_over()

 

创建多个实例

class Dog():

---snip---

my_dog = Dog('willie',6)

your_dog = Dog('lucy',3)

print("My dog's name is "+my_dog.name.title()+".")

print("My dog is" +str(my_dog.age)+ " years old.")

my_dog.sit()

print("Your dog's name is "+your_dog.name.title()+".")

print("Your dog is" +str(your_dog.age)+ " years old.")

your_dog.sit()

使用类和实例

Car类

class Car():

"""一次模拟汽车的简单尝试"""

     def _init_(self,make,model,year):

      """初始化描述汽车的属性"""

               self.make = make

               self.model = model

               self.year = year

    def get_descriptive_name(self):

           """返回整洁的描述性信息"""

              long_name = str(self.year)+' '+self.make +' ' +self.model

             return  long_name.title()

my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

给属性指定默认值

类中的每个属性都必须有初始值,哪怕这个值是0或空字符串。如设置默认值,在方法_init_()内指定这种初始值是可行的;但是如果对某个属性这样做了,就不需要包含为它提供初始值的形参了。

class Car():

"""一次模拟汽车的简单尝试"""

     def _init_(self,make,model,year):

      """初始化描述汽车的属性"""

               self.make = make

               self.model = model

               self.year = year

               self.odometer_reading = 0

    def get_descriptive_name(self):

               ----snip----

     def read_odometer(self):

           """ 打印一条指出汽车里程的消息"""

             print("This car has "+str(self.odometer_reading)+ '' miles on it.")

my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

my_new_car.read_odometer()

修改属性的值

三种方法:1直接通过实例进行修改,2通过方法进行设置,3通过方法进行递增(增加特定的值)

直接通过实例进行修改

class Car():

   ----sinp---

my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

my_new_car.odometer_reading = 23

my_new_car.read_odometer()

通过方法修改属性的值          update_odometer()方法

class Car():

   ----sinp---

      def update_odometer(self,mileage):

          """ 将里程表读数设置为指定的值"""

                 self.odometer_reading = mileage

my_new_car = Car('audi','a4',2016)

print(my_new_car.get_descriptive_name())

my_new_car.update_odometer(23)

my_new_car.read_odometer()

禁止任何人将里程表读数往回调

class Car():

   ----sinp---

      def update_odometer(self,mileage):

          """

           将里程表读数设置为指定的值

           禁止将里程表读数往回调

          """

                 if mileage >=self.odometer_reading:

                         self.odometer_reading = mileage

                  else:

                        print("You can't roll back an odometer!")

通过方法向属性的值进行递增

class Car():

   ----sinp---

      def update_odometer(self,mileage):

   ----sinp----

      def increment_odometer(self,miles):

      """ 将里程表读数增加指定的量"""

             self.odometer_reading += miles

my_used_car.update_odometer(23500)

my_used_car.read_odometer()

 

my_used_car.increment_odometer(100)

my_used_car.read_odometer()

你可能感兴趣的:(Python学习第十天)