首页 / PYTHON / Python 类 初学者笔记
Python 类 初学者笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python 类 初学者笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4414字,纯文字阅读大概需要7分钟。
内容图文
面对象编程:编写表现世界中的事物和景象的类,并基于这些类创建对象,被创建的对象称为实例化。
创建类
class Dog(): #Python中类名称中的首字母要大写 def __init__(self, name, age): #类中的函数都称为【方法】,init__()是个特殊的方法,每当我们根据Dog类创建实例时,Python都会自动的运行它 #self必不可少且必须位于其它形参前面, # 每个与类相关的方法调用都自动传入self,self让实例能够访问类中的属性和方法 self.name = name#以【self】为前缀的变量,可供类中所有【方法】使用,也可通过【实例】访问,我们称其为【属性】 self.age = age def sit(self): #self会自动传递name与age print(self.name.title() + " is now sitting.") def roll_over(self): print((self.name.title() + " rolled over!"))
根据类创建实例
my_dog = Dog('willie',6) #根据类创建的实例名称应用小写 print("My dog's name is " + my_dog.name.title() + ".")#__init__并未显式的包含return语句,但Python自动返回了这条小狗的实例(name与age) print("My dog is " + str(my_dog.age) + " years old.")
#print(my_dog.name + my_dog.age)调用属性相加 my_dog.sit()#实例中调用方法,Python在类Dog中查找方法sit()并运行其代码 my_dog.roll_over()
根据类创建多个实例
my_dog = Dog('willie', 6) your_dog = Dog('lucy', 3) print("My dog's name is " + my_dog.name.title() + ".") print("My dog is " + str(my_dog.age) + " years old.")#实例my_dog的打印语句 print("You dog's name is " + your_dog.name.title() + ".")#实例your_dog的打印语句 print("You dog is " + str(your_dog.age) + " years old.")
属性
类中的每个属性都必须有初始值(可以是0和空字符)
class Dog(): def __init__(self, name, age): self.name = name self.age = age self.day = 0#属性day的默认值为0 def update_a(self, new): '''修改属性值的方法''' self.day = new '''禁止任何人把年龄往回调''' #if new >= self.day : # self.day = new #else : #print("返老还童?") '''对属性值进行递增''' # self.day += new my_dog = Dog('willie',6) """修改属性值""" my_dog.day = 18#通过实例直接修改 my_dog.update_a(18)#通过方法修改
继承
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。
创建子类时父类必须包含在当前文件中,且位于子类之前,
可使用 super() 将父类与子类关联起来
from car import Car class ElectricCar(Car):#定义子类时必须在括号内指定父类名称 def __init__(self, manufacturer, model, year): super().__init__(manufacturer, model, year)#让Pyton调用父类的方法__init__(),使ElecticCar包含父类的所有属性 my_tesla = ElectricCar('teska', 'models', 2016)#使用子类创建实例 print(my_tesla.get_descriptive_name())
父类方法重写
在子类中定义一个与父类方法同名的方法,则Python将不会考虑父类中的这个方法,而只关注子类中定义的相应方法
将类作为属性的实例调用:
from car import Car class Battery(): def __init__(self, battery_size=60): self.battery_size = battery_size def describe_battery(self): print("This car has a " + str(self.battery_size) + "-kWh battery.") def get_range(self): if self.battery_size == 60: range = 140 elif self.battery_size == 85: range = 185 message = "This car can go approximately " + str(range) message += " miles on a full charge." print(message) class ElectricCar(Car): def __init__(self, manufacturer, model, year): super().__init__(manufacturer, model, year) self.battery = Battery()#将类用作属性 my_tesla = ElectricCar('teska', 'models', 2016) my_tesla.battery.describe_battery()#将类用作属性的实例调用
导入类模块
从一个模块中导入多个类 from car import Car, ElecticCar
导入整个模块
因为要在类名前加上模块名所以不会发生覆盖,所以需要从一个模块导入很多类时,最好导入整个模块使用。
import car my_car = car.Car('audi', 'a4', 2015)#使用car模块中的类创建实例,需要在类前加上模块名 print(my_car.get_descriptive_name()) my_car = car.ElectricCar('tesla', 'roadster', '2016') print(my_car.get_descriptive_name)
使用Python标准库collections创建有序字典
from collections import OrderedDict favorite_languages = OrderedDict() favorite_languages['jen'] = 'python' favorite_languages['sarah'] = 'c' favorite_languages['edward'] = 'ruby' favorite_languages['phil'] = 'python' for name, language in favorite_languages.items(): print(name.title() + "'s favorite language is " + language.title() + ".")
from random import randint#一个很有意思的库随机生成数字 class Die(): '''一个会改变面的骰子''' def __init__(self, sides=6): '''控制面''' self.sides = sides#sides def roll_die(self): '''转骰子操作''' for a in range(0,10):#控制循环 x = randint(1, self.sides) print(x) a = Die() a.roll_die() b = Die() b.sides = 10#改变骰子面数 b.roll_die()
工作流程:
开始时应该让代码结构尽可能简单,尽可能在在一个文件中完成所有工作,再将类移到独立的模块中。
每个模块应包含一段描述,对于其中的类能做什么也应有所描述
在类中使用一个空行来分隔方法;在模块中使用两个空格来分隔类
内容总结
以上是互联网集市为您收集整理的Python 类 初学者笔记全部内容,希望文章能够帮你解决Python 类 初学者笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。