类:一大类对象共有的通用行为
类中的函数称为方法
__init__是一个特殊的方法 ,以self为前缀的变量可供类中的所有方法使用。
class Dog:
def __init__(self,name,age):
self.name=name
self.age=age
def sit(self):
...
def roll_over(self):
...
通过实例访问的变量称为属性:name,age
my_dog=Dog('dasd',5)
访问属性:my_dog.name;my_dog.age
访问方法:my_dog.sit();my_dog.roll_over()
给属性指定默认值,有些属性无需形参来定义,可在方法__init__()中来指定默认值,如
class Car:
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=0
修改属性的值:
直接修改如
my_car=Car('dfd','fdf',686)
my_car.odometer_reading=23
再设立一个函数,如
def update_odometer(self,mileage):
self.odometer_reading=mileage
my_car=Car('fdsf','sfsdf',42)
my_car.update_odometer(23)
通过方法对属性的值进行递增
继承:子类继承父类时,将自动获得另一个类的所有属性和方法,并可以定义自己的属性和方法,创建子类时,父类必须在当前文件中,且位于子类前面
编写子类时,要调用父类的方法__init__(),这是将初始化在父类的__init__()方法中定义的所有属性,从而让子类包含这些属性
class Car:
def __init__():
self.make=make
self.model=model
self.year=year
self.odometer_reading=0
def
def
def
class ElectricCar(Car):
def __init__(self,make,model,year):
super.__init__(make,model,year)
self.battery_size=75
def describe_battery(self):
...
super()时特殊函数,让你能够调用父类的方法
给子类定义属性和方法,如self.battery_size=75;def describe_battery(self):
对于父类的方法,不符合子类,是可以重写的
假如父类里有fill_gas_tank()的方法,但是他对点电动车毫无意义,就可以重写他
class ElectricCar(Car):
def fill_gas_tank(self):
print("fdfdfdddgfbfbf")
class Car:
def __init__(self,make,model,year):
...
def get_describe_name(self):
...
class Battery:
def __init__(self,battery_size):
self.battery_size=battery_size
def describe_battery(self):
print("vdfvd")
class ElectricCar:
def __init__(self,make,model,year):
super().__init__(make,model,year)
self.battery=Battery()
my_tesla=ElectricCar('dfsf','fsdfs',24)
print(my_tesla.get_describe_name())
my_tesla.battery.describe_battery()#这是在my_tesla中查找属性battery,并对存储在该属性中的Battery实例调用方法describe_battery()
导入类
在cay.py中有一个Car类,导入时from car import Car
一个模块导入多个类,from car import Car,ElectricCar
导入整个模块import car
导入模块所有类from module_name import *
可以用as做别名
搜索路径
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
- 1、当前目录
- 2、如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
- 3、如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
PYTHONPATH 变量
作为环境变量,PYTHONPATH 由装在一个列表里的许多目录组成。PYTHONPATH 的语法和 shell 变量 PATH 的一样。
在 Windows 系统,典型的 PYTHONPATH 如下:
set PYTHONPATH=c:\python27\lib;