初识面向对象

面向对象

语法

类:具有相同方法和属性的一类事物         例如 桌子 电脑 猫

对象:具有具体的属性值的实际存在的例子      例如 周杰伦 江疏影

用class来描述一个类

class 类名:      创建一个类   类名通常为以大写字母开头的单词

class Dog:

  变量1 = 100

  变量2 = 'ab'

  变量3 = [a,v,d,s]         变量可以是任何数据类型

print(Dog.变量)      常用查看类中的变量的方法

print(Dog.__dict__['变量'])      方法二

实例化

对象也是实例,创建一个对象就是创建一个实例,这个过程叫做实例化

实例化的过程

在内存中开辟了一块空间

创建了一个 self 变量来指向这块空间  

调用 init 自动传 self 参数  其他的参数都是按照顺序传进来的

执行init  将 self 自动返回给调用者

类名加括号的方式可以创建一个对象

class Dog:
    def __init__(self,name,hp,ad,sex):
        print('执行')
        self.dict['name'] = name    不常用 
        self.blood = hp
        self.ad = ad
        self.sex = sex
                self 其实上是由python的语法开辟出了一个属于具体的对象的空间
qu = Dog('qu',20,10,'man')            传参的过程中 qu = self
(对象/实例)
print(qu.name)          引用实例变量/引用对象属性
leng = Dog('leng',10,5,'sb')
(对象/实例)
print(leng.ad)

执行 init 向 self 这类空间管理的字典中添加一些 key value,  self 会自动的被返回

一切皆对象

数据类型也是类

对象就是具体的内容

class Dog:

  a = 100          a就是静态变量  这个类中的变量  是所有对象共享的值  所有静态变量的值都尽量用类名去操作

  def __init__(pass)  初始化方法

  (对象资源)

示例函数

class Dog:
    def __init__(self,name,hp,ad,sex):
        self.name = name
        self.hp = hp
        self.ad = ad
        self.sex = sex    
    def bite(self,person)         
        person.hp -= self.ad
        print('%s攻击了%s,造成了%s点伤害'%(self.name,person.name,self.ad))
class Person:
    def __init__(self,name,hp,ad,sex):
        self.name = name
        self.hp = hp
        self.ad = ad
        self.sex = sex
    def fight(self,dog)
        dog.hp -= self.ad
        print('%s攻击了%s,造成了%s点伤害'%(self.name,dog.name,self.ad))
hei = Dog('小黑',20,10,'?')
pdd = Person('PDD',100,20,'man')
hei.bite(pdd)
print(pdd.hp)
pdd.fight(hei)
print(hei.hp)

里面的def fight(self,dog) 属于动态变量/方法  是只属于Person的方法

类名     可以调用所有定义在类中的名字

对象名 可以调用所有定义在对象中的属性

变量 函数名

在 init 函数和 self 相关的调用函数 且调用函数的时候  会把当前的对象当作第一个参数传递给 self

向对象的内存空间添加

可以通过 init 在类的内部完成  也可以通过对象名在类的外部完成

也可以通过在类的外部通过对象名来修改属性的值

删除

del pdd.name        删除  pdd.name  这条属性

原文地址:https://www.cnblogs.com/biulo/p/10597388.html