Python入门(05) -- 类

一、创建和使用类

1.创建Person类

 class Person():
     def __init__(self, name, age):
         self.name = name
         self.age = age

     def work(self):
         print(self.name.title() + ' is working now!')

     def study(self):
         print(self.name.title() + " is going to study!")

2.实例化一个类

 person1 = Person('zhang', 12)

1)访问属性

 print("Name:\t" + person1.name)
 print("Age:\t" + str(person1.age))

打印结果:

 Name:    zhang
 Age:    12

2)调用方法

 person1 = Person('zhang', 12)
 person1.work()
 person1.study()

打印结果:

 Zhang is working now!
 Zhang is going to study!

###二、使用类和实例
1 Person类

class Person():
     def __init__(self, first_name, last_name, age):
         self.first_name = first_name
         self.last_name = last_name
         self.age = age

     def get_person_information(self):
         full_name = self.first_name.title() + ' ' +  self.last_name.title() + " years old!"
         return msg
# 实例化一个Person类
per = Person('kris', 'wang', 24)
print(per.get_person_information())

打印结果:

 Kris Wang is 24 years old!

2 给属性指定默认值

 class Person():
     def __init__(self, first_name, last_name, age):
         self.first_name = first_name
         self.last_name = last_name
         self.age = age
         self.middle_name = 'real'

     def get_person_information(self):
         full_name = self.first_name.title() + ' ' + self.last_name.title()
         msg = full_name + " is " + str(self.age) + " years old!"
         return msg

     def get_person_full_name(self):
         print(self.first_name.title() + ' ' + self.middle_name.title() + ' ' + self.last_name.title())
 per = Person('kris', 'wang', 24)
 print(per.get_person_information())
 per.get_person_full_name()

打印结果:

 Kris Wang is 24 years old!
 Kris Real Wang

3 修改属性的值
1) 通过直接赋值进行修改

 per = Person('kris', 'wang', 24)
 per.get_person_full_name()
 per.middle_name = 'zhen'
 per.get_person_full_name()

打印结果:

 Kris Real Wang
 Kris Zhen Wang

2) 通过方法进行修改

 class Person():
     def __init__(self, first_name, last_name, age):
         self.first_name = first_name
         self.last_name = last_name
         self.age = age
         self.middle_name = 'real'

     def get_person_information(self):
         full_name = self.first_name.title() + ' ' + self.last_name.title()
         msg = full_name + " is " + str(self.age) + " years old!"
         return msg

     def get_person_full_name(self):
         print(self.first_name.title() + ' ' + self.middle_name.title() + ' ' + self.last_name.title())

     def update_middle_name(self, new_middle_name):
         self.middle_name = new_middle_name

 per = Person('kris', 'wang', 24)
 per.get_person_full_name()
 per.update_middle_name('zhen')
 per.get_person_full_name()

打印结果:

 Kris Real Wang
 Kris Zhen Wang

三、继承

1 子类的方法_init_()
创建子类的实例时, Python首先需要完成的任务是通过方法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):
         long_name = str(self.year) + " " + self.make + " " + self.model
         return long_name.title()

 class ElectricCar(Car):

     def __init__(self, make, model, year):
         super().__init__(make, model, year)

 my_car = ElectricCar("Teslar", "model s", 2016)
 print(my_car.get_descriptive_name()) 

打印结果:

 2016 Teslar Model S

2 给子类定义属性和方法
让一个类继承另一个类后, 可添加区分子类和父类所需的新属性和方法。

 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):
         long_name = str(self.year) + " " + self.make + " " + self.model
         return long_name.title()

 class ElectricCar(Car):
     # 电动汽车的独特之处
     # 初始化父类的属性, 再初始化电动汽车特有的属性
     def __init__(self, make, model, year):
         super().__init__(make, model, year)
         # 此处添加的为子类自己的属性
         self.battery_size = 70
      # 此处添加的为子类自己的方法
     def describe_battery(self):
         print("This car has a " + str(self.battery_size) + "-kWh battery")

 my_car = ElectricCar("Teslar", "model s", 2016)
 print(my_car.get_descriptive_name())
 my_car.describe_battery()

打印结果:

 2016 Teslar Model S
 This car has a 70-kWh battery
posted @ 2020-01-18 09:03  那人_那事  阅读(82)  评论(0编辑  收藏  举报