专栏:python
个人主页:HaiFan.
专栏简介:本专栏主要更新一些python的基础知识,也会实现一些小游戏和通讯录,学时管理系统之类的,有兴趣的朋友可以关注一下。
类与对象
- 前言
- 定义类
- 创建对象
前言
面向对象跟函数一样,是比较重要的内容。
那什么是对象呢?
在现实生活中:足球,人,手机,等一切物品都可以看作对象。
把现实生活中的事物,转换成程序的形式,就是程序中的对象。
举个例子:张三的足球,李四的足球。
足球是具体的事物,并且张三和李四都有足球,那么就可以提取足球的共同特征,作为一个类别。
足球能干什么?
踢,扔,打等等,这些都是足球能干的事,在这里,先称之为动作。
足球还有品牌,大小之分,这些都是通过特征去展示的。
可以通过具体的事物,来推出足球所具有的共同特征和动作。
当然,在开发的时候,需求是什么,做什么就行。
在程序中:把特征称为属性,把动作称为方法
在类中的函数就是方法。
定义类
class 类名:(或者这样写:class 类名():)
属性:特征
方法:动作
以上面的足球为例。
class Soccer:
#属性
pass
#方法
这就定义出了一个类。
注:类名首字母要求大写,如果是多个字母组成的类名,每个单词的首字母都要大写,要牢记
创建对象
class Soccer:
#属性
pass
#方法
print(Soccer)
这个main先不用管
打印出来的结果是一个 class Soccer
。
在定义类的时候,系统会自动的分配空间,来存放这个类,所以可以把类当成一个模板。
在使用类创建对象。
class Soccer:
#属性
pass
#方法
a = Soccer()
这个a,就是一个对象。
并且,a是利用Soccer创建出来的对象,具有Soccer的所有方法和属性。
class Soccer:
brand = 'nb'
price = 9999999
a = Soccer()
print(a.brand)
print(a.price)
在创建一个b对象。
并打印出b对象的牌子和价钱。
class Soccer:
brand = 'nb'
price = 9999999
a = Soccer()
print(a.brand)
print(a.price)
print('------------------')
b = Soccer()
print(b.brand)
print(b.price)
可以看出,a和b的结果是一样的。
当我把a的牌子和价钱修改之后,b的牌子个价钱会被修改吗?
class Soccer:
brand = 'nb'
price = 9999999
a = Soccer()
a.brand = 'bunb'
a.price = 111111
print(a.brand)
print(a.price)
print('------------------')
b = Soccer()
print(b.brand)
print(b.price)
修改a,不会影响b。
在创建a对象的时候会有一块自己的空间,这个空间和模版的空间是不一样的,所以,在a自己的空间对brand进行更改是成立的。同理:b的brand不会随a的brand的更改而更改。
计算机会先在a的空间里去找,有没有对a的brand进行更改,如果有,输出的就是a空间里的那个brand,如果没有就会去模子Phone里进行查找。
赋值操作永远是作用在自己的空间上的
所以一系列的a.
操作都是在a自己的空间上进行操作的。