文档章节

python 面向对象

明月知心
 明月知心
发布于 2016/11/21 22:19
字数 595
阅读 14
收藏 0

面向对象

面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数

class car:
    #静态字段,类属性
    cars='车的种类之一'
    def __init__(self,name):
        #动态字段,实例属性
        self.name=name
car1=car('宝马')
print(car1.name)
print(car.cars)
print(car1.cars)

定义1个对象:class xxx:

实例化1个对象:def __init__(self,value)  

__init__ 是初始化的意思

定义car(车)这个类,而宝马这个实例对象拥有 name属性

通过字典,一次性取出实例对象所有属性 __dict__

class People:
    def __init__(self,name,sex,number,age):
        self.name=name
        self.sex=sex
        self.number=number
        self.age=age
p1=People('SBharmel','man',1350023,16)
print(p1.__dict__) #通过字典,一次性取出,对象所有属性

#输出结果:
#{'name': 'SBharmel', 'number': 1350023, 'sex': 'man', 'age': 16}
   

从属关系

cars 属于 car 类   类不能访问动态字段

name 属于 car1 对象      对象可以访问动态字段和静态字段

只有是从属关系,才能用 .xxx 方法获取

所以可以写 car.cars #获取静态字段 car1.name #获取动态字段

如果写成 car.name 则会报错

不能写的原因:

1.从属关系不同

2. 车这个类可能拥有多个类型如 宝马, 奔驰 他们两个的属性不一样,如价格,车速不同

#但是对象可以获取 静态字段 car1.cars

因为 car1 也属于 这个类 (car)

class car:
    def __init__(self,name,speed,price):
        self.name=name
        self.speed=speed
        self.price=price
car1=car('宝马','130km/h','100w')
car2=car('奔驰','140km/h','80w')
print(car1.name)       #正确
print(car2.price)      #正确
print(car.speed)       #报错 
'''
Traceback (most recent call last):
  File "E:\workspace\day4\backend\class.py", line 23, in <module>
    print(car.speed)
AttributeError: type object 'car' has no attribute 'speed'
'''

静态字段和动态字段

类创建的字段叫做 静态字段 cars

.sefl 创建的字段叫做 动态字段 name

静态方法(@staticmethod)和动态方法以及特性( property)

@staticmethod  #构造的函数()里面不传参数self

def foo()

@property      #构造的函数 ()里面要传参数 self,调用不用写()

hb.bar             #仅为实例对象的特性,类调用无内容

class Province:
    def __init__(self,name):
        self.name=name
    #动态方法
    def meeting(self):
        print(self.name+'正在开运动会')
    #静态方法
    @staticmethod            
    def foo():
        print('每个省要坚持环保')
    #特性
    @property
    def bar(self):
        print('someting')
    
hb=Province('湖北')
hb.meeting()
Province.foo()
hb.bar

© 著作权归作者所有

共有 人打赏支持
明月知心
粉丝 6
博文 158
码字总数 71882
作品 0
武汉
程序员
【简明 Python 教程】学习笔记【Python简介及基本概念】

Python的特色:简单、易学、免费开源、高层语言、可移植性、解释性、面向对象、可扩展性、可嵌入性、丰富的库。 Ctrl-d退出提示符; Ctrl-z再按Enter。 复数。 标示符的命名: 标示符是用来标...

donhui
2014/11/27
0
0
Python3快速入门——(1)python变量和输入输出函数

1、Python语言 Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。 Python 是交互式...

飞天小橘子
03/14
0
0
走进Python世界(一)入门介绍

什么是Python Python是一种解释性,面向对象的,带有动态语义的高级程序设计语言。它能够使你在编程时能够保持一种简洁易懂的风格,不用过多考虑功能实现的。 Python的几个重要阶段 CNRI 时期...

Garrry
2015/07/16
0
0
Fedora 14下配置Python开发环境

pythone新闻1则 Python十分适合解决很多简单的、有趣的问题,比用C语言要省力的多。(这是实话,几行Python代码你就能制作一个简单的拼写检查程 序。)你会发现这种语言里几乎没有任何复杂或让...

墙头草
2011/03/29
0
1
你真的了解Python吗?这篇文章让你了解90%

  【IT168 评论】人们为什么使用Python?   之所以选择Python的主要因素有以下几个方面:   软件质量:在很大程度上,Python更注重可读性、一致性和软件质量,从而与脚本语言世界中的其...

博客园
05/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql在查询结果前加序号

在查询结果前加序号: set @rn=0; select @rn:=@rn+1 as 序号,你查询的结果集

lyle_luo
26分钟前
1
0
webpack 工作原理

暂无内容

agenyun
33分钟前
1
0
iOS返回指定控制器或者关闭自己当前控制器

RT。。。 这种情况其实很常见,比如,从A界面进入B界面在进入C界面,如果返回时,直接从C回到A,怎么做?或者说无限跳转进入BCDEF...XYZ。。。之后直接返回某一个界面,怎么做? 其实这种的有...

RainOrz
34分钟前
1
0
文章收藏

对接口或者方法进行性能测试的工具contiperf: http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/1127/205747.html...

月下狼
39分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部