学好继承,你就初步学习了程序面向对象啦~本章我依旧为大家整理好了运行的步骤,以及举了尽可能清晰简单的例子为大家展示。
class MyClass():
def __init__(self, arg1, arg2):
self.attribute1 = arg1
self.attribute2 = arg2
# 创建一个类的实例
my_instance = MyClass("value1", "value2")
print(my_instance.attribute1) # 访问属性,输出: value1
print(my_instance.attribute2) # 访问属性,输出: value2
arg/ attribute
(1)当创建类的实例时,会自动调用__init__方法。(在对象实例化时进行初始化操作)
(2)类的首字母大写,实例小写。
(3)类的每个属性都有初始值,哪怕是0。
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer= 0
(1)直接在调用时修改
创建实例,在下一行为属性赋值,然后再调用方法。
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer= 0
def reading_odometer(self):
print(f"This car has {self.odometer} miles on it. ")
my_car = Car('audi','a4','2016')
my_car.odometer=16
my_car.reading_odometer()
(2) 创建新方法
a.直接更新数值
创建方法updating_odometer(),在括号中添加数值以对odometer进行改变。
调用时:先执行updating_odometer()方法,再执行reading_odometer方法。
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer= 0
def reading_odometer(self):
print(f"This car has {self.odometer} miles on it. ")
def updating_odometer(self, mileage):
self.odometer=mileage
my_car = Car('audi','a4','2016')
my_car.updating_odometer(16)
my_car.reading_odometer()
b.叠加
设置初始值为16,创建方法increment_odometer(),初始值加上括号值对odometer进行改变。
class Car():
def __init__(self,make,model,year):
self.make = make
self.model = model
self.year = year
self.odometer= 16
def reading_odometer(self):
print(f"This car has {self.odometer} miles on it. ")
def increment_odometer (self, mileage):
self.odometer += mileage
my_car = Car('audi','a4','2016')
my_car.increment_odometer(100)
my_car.reading_odometer()
调用super()的‘init’方法:继承父类的方法与属性。
调用后,子类代码可以修改父类属性的值,修改为属于自己的性质。
class BaseClass:
def __init__(self, arg1, arg2):
self.attribute1 = arg1
self.attribute2 = arg2
class DerivedClass(BaseClass):
def __init__(self, arg1, arg2):
super().__init__(arg1, arg2)# 调用父类的初始化方法
self.attribute1= arg1
导入文件中的某个类
from project import Class
导入文件中的多个类
from project import ClassA, ClassB, ClassC
导入文件中所有类(导入文件)
import project
OrderedDict,行为与字典相同。区别只在于记录了键—值对的添加顺序。
模块random包含以各种方式生成随机数的函数,其中的randint()返回一个位于指定范围内的整数。
from random import randint
class Die:
def __init__(self, sides=6): #初始化参数是6
self.sides=sides
def roll_die(self):
result=randint(1,self.sides)
print(f'The number is {result}')
first_die = Die(sides=6)
for _ in range(10):
first_die.roll_die()
_
创建类与调用__init__方法
修改类的属性值(调用时修改/创建新方法)
继承类的方法与属性(from xx import xx)
导入类与几个Python标准库【OrderedDict/ random-randint()】