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