zoukankan      html  css  js  c++  java
  • day25 初始面向对象

    类      有具体规范,无具体值
    对象 有具体的值

    dict 类
    d = {"":""} 对象

    自定义一个类格式:
      class 类名:   # 可以跟()或者不跟
      属性 = 'a'
      print(类名.属性)
     1 class Person():                   # 类名加():叫做实例化,会得到一个实例的结果
     2     country = "China"             # 类属性,只要是这个类就一定有这个属性
     3     def __init__(self,*args):     # 初始化方法,self是对象,是必须要传的参数
     4         # print(self.__dict__)    # self 就是一个可以存储很多属性的大字典
     5         self.name = args[0]       # 往字典里面存属性的方式和字典不太一样,要习惯一下下
     6         self.hp = args[1]
     7         self.aggr = args[2]
     8         self.sex = args[3]
     9                                 # self自己返回值了,不需要我们自己写return 了
    10     def dead(self,n):            # 定义一个方法,必须含有参数,所有使用方法的时候必须要传参
    11                                 # self函数必须要在第一个参数就传入,这个参数决定了使用方法的对象
    12         print('%s死死死,死了%s次' %(self.name,n))
    13 
    14 suyang = Person("苏阳", 100, 1, "不详")     # alex 对象     # 实例化对象
    15 # print(Person.country)            # 查看类属性
    16 # print(suyang.__dict__)        # 查看对象的全部属性
    17 # print(suyang.name)            # 查看对象某个属性
    18 # Person.dead(suyang,5)         # 调用方法 类名.方法名(对象名)
    19 # suyang.dead(5)                # 相当于Person.walk(suyang,5)
    20                                 # 原因在于suyang已经被当做类里面的对象放进去了,
    21                                 # 可以直接使用类的方法
    22 
    23 print(Person.__dict__["country"])            # 字典存储类里面的所有的名字,
    24 print(suyang.__dict__["sex"])                # 字典存储了对象里面的所有的名字
    25 suyang.__dict__["sex"] = "禽兽"                # 既然是字典那就可以用字典的操作进行处理
    26 print(suyang.__dict__["sex"] )
    27 print(suyang.sex)                            # 直接更改这个字典的操作是可以真实体现在对象里面的
    28                                             # 但是我们一般不这么用
    29 suyang.sex  = "不详"                        # 一般来说还是用这种直接调用方法改岂不是更简单啊
    30 print(suyang.sex)
    对象 = 类名()
    过程:
    类名() 首先会创造出一个对象,创建了一个self变量
    调用init方法,类名括号里面的参数在这里接受
    执行init方法
    返回self值
    对象能做的事情:
    查看属性
    调用方法
    __dict__ 对于对象中的增删改查可以通过字典更改
    类能做的事情:
    实例化
    调用方法,但是会报错需要传self参数,所以一般我们不用
    调用类中的属性
    __dict__ 对于类中的是不可以的,只能看不能改

    面向对象可以让逻辑和数据组合,即属性和行为进行组和
    函数式编程的数据和逻辑是完全分离的
    面向对象对相同属性的一类事物进行抽象后分类
    面向对象也对事物进行模板约束
  • 相关阅读:
    如何检索某个字段在sqlserver中的哪个些存储过程中?很简单的SQL语句。
    如何去掉HTML代码来获取纯文本?
    ajax实现跨域请求
    ajax实现跨域提交
    lab3
    Lab2
    hw2
    Homework1
    Lab1
    CS61B_学习计划和进程
  • 原文地址:https://www.cnblogs.com/shijieli/p/9914442.html
Copyright © 2011-2022 走看看