您的位置:首页 > 编程语言 > Python开发

林美扬Python学习笔记之 ------ 类和对象

2018-12-31 21:30 225 查看

学过java,对这个理解起来不是很费劲。
具体语法体现在下面的这个例子中
 

car.py

文件名,属性名,函数名小写开头,类名大写开头。

构造函数__init__(self):两个下划线…一定要加个self,其他属性跟在后面

定义函数没啥亮点,记得要加self

如果对类中属性更改必须使用封装好的函数,体现了类的封装性

class Car():
def __init__(self,brand,year):
self.brand=brand
self.year=year
self.defaultAttribute=0 #给了默认值属性举例

def describe_car(self): #描述汽车基本信息函数
print('My Normal Car:\nbrand:'+self.brand,' year:'+str(self.year))

def update_year(self): #修改属性的函数
self.year=self.year+1
print('The year of car has been updated\n')

Battery类是为ElecCar定做的,他实例化的对象作为ElecCar的属性

class Battery():
def __init__(self,batteryBrand):
self.battery_brand=batteryBrand
self.battery_size = 6000

将Car写在定义ElecCar的括号里,代表ElecCar继承Car,ElecCar是Car的子类

super().init() 继承父类的构造函数,继承父类的属性、默认值
当然可以再添加新的属性

子类中可以重写父类函数,以重写的为准;也可以写新的函数

class ElecCar(Car):
def __init__(self,brand,year,Battery):
super().__init__(brand,year)      #继承父类的构造函数
self.battery=Battery     #子类独有;将别人的对象作为属性。
#电动车不同之处当然在电池

def describe_car(self): #重写父类中函数
print('\nMy Electronic Car:\n'
'brand:'+self.brand+'  year:'+str(self.year)+
'\nbatterBrand:'+self.battery.battery_brand
+'batterSize:'+str(self.battery.battery_size))

 

helloworld.py

这里和java很像,import之后调用,我喜欢这种方式。
不过也可以使用语句:

from car import Car,ElecCar
,但这样不知道这些类哪来的,还容易混淆,我不喜欢。

实例化(创建一个对象)的命名方式:

对象=模块名.类名(属性1,属性2,...)

实例化后调用方法还是如常。

import car
my_normalCar=car.Car('Toyota', 2016)
my_normalCar.update_year()
my_normalCar.describe_car()

my_elecCar=car.ElecCar('Dragon',2018,car.Battery('Tesla'))
my_elecCar.describe_car()

最终输出结果:

The year of car has been updated

My Normal Car:
brand:Toyota  year:2017

My Electronic Car:
brand:Dragon  year:2018
batterBrand:TeslabatterSize:6000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: