VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > python入门教程 >
  • 学习python第七天

上一章的类是用函数模拟了一下,方便与理解。

类:类名用驼峰式写法,不用下划线

class Dog:

  name = "jinmao"    #类属性。 此处属于共有属性。公有属性一旦更改所有的实例中全都会更改。所以根据需要可以设置实例属性

  def __init__(self, name, age):      #初始化方法,也叫构造方法,构造函数。作用是实例化的时候自动执行,进行一些初始化工作。把需要的实例属性当作参数传入。(name和age)

    print(name, age)

    #经过了初始化方法,但是也没有把参数真正传到实例中。还需要绑定参数值到实例中。

    self.name = name  绑定参数值

    self.age = age

  def bite(self):        #类中的函数叫方法,方法中必须有至少一个参数(self)。self代表实例本身。   调用方法   实例.方法

    print("you were bited! ")   #被动语态应该没用错吧,好久都不学英语了hhh

    print(self.name,self.age)    #由于__init__和bite是两个函数参数不能通用,但是可以通过self将连个函数建立联系。此处n多个方法都可以通过self进行共享,实现联系

d1 = Dog()  #实例化,d1为实例(对象)

d1.bite()   #调用方法

d2 = Dog("Jack", 12)     #传入实例属性

print(d2.name)    #将实例属性绑定之后,此处才能输出传入的参数。也代表了真正把实例属性传入到了类中

Dog.name = "zangao"    #更改类中的共有属性。实例属性更改方法一样。没有这个属性就是添加

类的属性是公有属性,实例的属性是实例属性

注意:类,和实例的内存空间是独立的。类中的属性是共有的,实例中的实例属性是独立的。也就是说实例既包含自己的实例属性,又拥有类的公有属性

   类的方法,必须带一个self参数,这样才能打通函数之间的联系。也才能让函数知道是谁在调用这个函数

   self代表实例本身。哪个实例调用函数或者传入实例属性那么谁就是self。                                   这玩意再JavaScript中叫this。当时稀里糊涂的没想到在python中学明白了hhh

   实例属性也可在外部添加。d1.sex = "male"    这相当于初始化方法穿了一个sex参数,之后再绑定。

对象之间的交互

   参数除了self,也可以传入一个对象(另一个实例) 比如:bite(self,person) 此处的person可以是其他类生成的一个实例。可在这个bite函数中控制person的属性。此为对象的简单的交互。

  比如 def bite(self,person):

      person.live -= dog.attack      人的生命值(属性) 等于  人本来的生命值减去狗的攻击力

对象之间的关系:依赖关系,关联关系,组合关系,聚合关系,继承关系

依赖关系:将一个对象当作参数传递给另一个对象

   class Dog:

    def __init__(self, name, master):

      self.name = name

      self .master = master

dog1 = Dog("zangao", p1)      #此处的p1为类person生成的对象。此处就可以通过dog1来调用p1

关联关系:两个对象之间的才能做的事。例如男女朋友ppp

class person:

  def __init__ (self, name, sex):

    self.name = name

    self.sex = sex

    self.partner = None       #这句话我不写程序也没有报错。原因不太清楚,有大神看到可以解释一下

p1 = person("jack","M")

p2 = person("Ann","F")

p1.partner = p2      #二者要相互关联

p2.partner = p1     #二者要相互关联

print(p1.partner.name)

p1.partner = None  #取消关联二者要相互取消

p2.partner = None  #取消关联二者要相互取消

 

来源:https://www.cnblogs.com/xiaoyuheng/p/14612470.html


相关教程