面向对象编程理解-1

面向对象是思想:

描述此思想的语法有:c++,java、python、swift、c#·····

   思想和语言无关

两个概念:

类 class   :描述对象的对象

对象(object)/实例(instance)

1 类的创建语法:

class 类名[(继承列表)]:

   ‘类文档字符串’

   实例方法(类内部的函数method)定义

   类变量(class variable)        定义

   类方法(@classmethod)定义

   静态方法(@staticmethod)定义

注:[ ]的内容可省略

2.类的作用:

   可以用类来创建对象(实例)

   类内定义的变量和方法能被此类所创建的所有实例共同拥有

   类通常用来创建具有共同属性的对象(实例)

3 简单的类:

   classDog:

          pass

4 创建一个实例:

>>> class Dog:

...    pass

...

>>> dog1 = Dog()

>>> dog1.kinds = '京巴'

>>> dog1.color = '白色'

>>> print(dog1.kinds,dog1.color)

京巴 白色

>>>dog2 = Dog()

>>> dog2.kinds = '藏獒'

>>> dog2.color = '棕色'

5实例创建表达式:

实例名 = 类名([创建传参])

作用:创建一个类的实例对象并返回实例

6 实例说明

实例有自己的作用域和名字空间,可以为实例添加属性

实例可以调用类中的方法

实例可以访问类中的类变量

7 实例变量

   调用语法:

          实例.变量名

   在模块中调用:模块.实例.变量名

class Dog:

 

   def infos(self):

      print('狗的种类:',self.kinds,'狗的颜色',self.color)

 

 

dog1 = Dog()

dog1.kinds = '京巴'

dog1.color= '白色'

dog1.infos()

执行结果

狗的种类:京巴狗的颜色白色

8 实例变量赋值规则:

   首次赋值则创建实例变量

   再次赋值则改变实例变量的绑定关系

9 实例方法
9.1 语法:

class 类名(继承列表):

  def实例方法名(self[,参数1,参数2······]):

   ‘文档字符串’

    语句

9.2 说明:

   实例方法的实质是函数,是定义在类内的函数

   实例方法属于类的属性

实例方法是第一个参数代表调用这个实例方法的对象,一般命名为slef

实例方法如果没有return语句,则返回None

模块为Dog.py

 

class Dog:

    ''' 这是一只小动物,属于犬科'''

    def say(self):

        print("汪汪")

类名

 
>>> import Dog

>>> dog1 = Dog.Dog()

模块

 
>>> dog1.say()

汪汪

 

 

 

9.3 实例方法的调用方法:

   实例.实例方法名(调用参数)

   或

   类名.实例方法名(实例,调用参数)

class Dog:

    ''' 这是一只小动物,属于犬科'''

    def say(self):

        print("汪汪")

    def eat(self,f):  #好像通常是给实例添加属性

        '为狗进食,同时记录food'

        print("狗正在吃",f)

        self.food = f   #那个实例调用此方法,那个对象就会有这个属性

    def food_info(self):

        print('小狗刚吃的是:',self.food)

 

dog1 = Dog()

dog1.say()          #对象.实例方法名(调用参数)

Dog.say(dog1)       #类.对象方法名(实例,调用参数)

dog1.eat("骨头")

print(dog1.food)

dog1.food_info()

 

执行结果

>>> import Dog

汪汪

汪汪

狗正在吃骨头

骨头

小狗刚吃的是:骨头

>>> Dog.__doc__

>>> print(Dog.__doc__)

None

>>> Dog.Dog().__doc__

' 这是一只小动物,属于犬科'

>>> Dog.Dog().eat.__doc__

'为狗进食,同时记录food'

 

补充构造方法
1 作用:

          创建一个对象

2 函数名:

__new__

 3 说明:

构造方法是较__init__之前执行,也就是说这个构造方法创建对象,并没有对创建对象进行初始化

10初始化方法
10.1作用

创建对象时初始化实例变量

10.2 语法

def __init__(self[,形参列表])

   语句

10.3 说明

Ø  构造方法名必须为__init__不可改变

Ø  在一个类中,只能有一个__init__构造方法(有多个时,最后一个起作用)

Ø  构造方法会在实例创建时自动调用,且将实例自身通过第一个参数self传入__init__方法

Ø  构造方法如果没有return语句,则返回self自身



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值