本系列文章配套代码获取有以下三种途径:
-
可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):
https://returu.github.io/Python_Basic/lab/index.html
-
也可以通过百度网盘获取,需要在本地配置代码运行环境,环境配置可以查看【Python基础】2.搭建Python开发环境:
链接:https://pan.baidu.com/s/1x2Ynh_VibPY2u-HWTaJo8w?pwd=mnsj
提取码:mnsj
-
前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Basic
——————————————————
Python中使用类(class)来实现面向对象编程。
类是包含数据(变量,称为属性)和代码(函数,称为方法)的自定义数据结构。
1.创建及实例化类:
1class <类的名称>:
2 <语句块>
1class CarClass:
2 pass
CarClass()
创建了CarClass
类的两个对象,将其分别赋给a_car
和another_car
。1a_car = CarClass()
2another_car = CarClass()
1# 定义一个空类
2>>> class CarClass:
3... pass
4
5# 实例化一个对象a_car
6>>> a_car = CarClass()
7
8# 为该对象添加动态属性并赋值
9>>> a_car.brand = 'audi'
10>>> a_car.category = 'SUV'
11
12# 访问属性
13>>> a_car.brand , a_car.category
14('audi', 'SUV')
del
加对象属性的方式,即可删除属性。1>>> del a_car.category
2>>> a_car.category
3AttributeError: 'CarClass' object has no attribute 'category'
1# 定义一个空类
2>>> class CarClass:
3... __slots__ = ('brand' , 'category')
4
5# 实例化一个对象a_car
6>>> a_cat = CarClass()
7
8# 为该对象添加__slots__中规定的动态属性并赋值
9>>> a_cat.brand = 'audi'
10>>> a_cat.category = 'SUV'
11
12# 为该对象添加其他动态属性
13>>> a_cat.price = '20'
14AttributeError: 'CarClass' object has no attribute 'price'
__init__()
:__init__()是Python中特殊的方法名称,该方法用于在类定义中初始化对象。在类定义编写__init__()时,第一个参数应该是self,self参数指定了引用的是此对象本身。
下面创建一个简单对象(CarClass)并分配其属性,本次向初始化方法加入brand、type参数:
1# 定义一个空类
2>>> class CarClass:
3... def __init__(self , brand , category):
4... self.brand = brand
5... self.category = category
6
7# 通过向参数传递对应值,创建一个Car对象
8>>> a_car = CarClass('audi' , 'SUV')
9
10# 访问属性
11>>> a_car.brand , a_car.category
12('audi', 'SUV')
1# 定义一个空类
2>>> class CarClass:
3... def __init__(self):
4... print("即使没有初始值也会调用__init__。")
5
6# 实例化一个对象a_car
7>>> a_cat = CarClass()
8即使没有初始值也会调用__init__。
内置属性 |
描述 |
__name__ |
类名称 |
__doc__ | 类的文档字符串 |
__module__ | 类所在的模块,如果直接运行当前文件,返回值为__main__ |
__base__ | 该类所有的父类,为tuple类型对象 |
__dict__ | 该类所有的属性,为dict类型对象 |
1# 定义一个空类
2>>> class CarClass:
3... """
4... 用于描述类的文档字符串
5... """
6... def __init__(self , brand , category):
7... self.brand = brand
8... self.category = category
9
10>>> CarClass.__name__
11'CarClass'
12>>> CarClass.__doc__
13'n 用于描述类的文档字符串n '
14>>> CarClass.__module__
15'__main__'
16>>> CarClass.__base__
17object
18>>> CarClass.__dict__
19mappingproxy({'__module__': '__main__',
20 '__doc__': 'n 用于描述类的文档字符串n ',
21 '__init__': <function __main__.CarClass.__init__(self, brand, category)>,
22 '__dict__': <attribute '__dict__' of 'CarClass' objects>,
23 '__weakref__': <attribute '__weakref__' of 'CarClass' objects>})
本篇文章来源于微信公众号: 码农设计师