zoukankan      html  css  js  c++  java
  • 基础DAY7-内置的dir函数查询对象的方法列表

    dir 内置函数

    变量,数据,函数都是对象

    In [9]: def demo():
    ...: """这个是测试函数"""
    ...: print("123")
    ...:

    In [10]:dir(demo)  #使用内置函数dir传入标志符/数据,可以查看对象内的所有属性和方法

    In [10]: demo.__doc__
    Out[10]: '这个是测试函数'

    __方法名__

    __new__ 创建对象时,会被自动调用

    __init__ 对象被初始化时,会被自动调用

    __del__ 对象被从内存中销毁时,会被自动调用

    __str__ 返回对象的描述信息,print函数输出使用

    定义简单的类(只包含方法)

    class 类名:

      def 方法1(self, 参数列表):

        pass

      def 方法2(self, 参数列表):

        pass

    对象变量 = 类名()

     1 class Cat :
     2     def eat(self):
     3         print("猫爱吃鱼")
     4     def drink(self):
     5         print("猫爱喝水")
     6 tom = Cat()
     7 tom.drink()
     8 tom.eat()
     9 print(tom)
    10 addr = id(tom)
    11 print("%d" % addr)
    12 print("%x" % addr)
    13 
    14 猫爱喝水
    15 猫爱吃鱼
    16 <__main__.Cat object at 0x00000000012FB438>
    17 19903544
    18 12fb438
    引用

    %d 十进制  %x 十六进制

     1 class Cat:
     2     def eat(self):
     3         print("猫爱吃鱼")
     4     def drink(self):
     5         print("猫爱喝水")
     6 # 创建猫对象
     7 tom = Cat()
     8 tom.name = "Tom"
     9 tom.drink()
    10 tom.eat()
    11 print(tom)
    12 # 再次创建猫对象
    13 lazy_cat = Cat()
    14 lazy_cat.name = "大懒猫"
    15 lazy_cat.drink()
    16 lazy_cat.eat()
    17 print(lazy_cat)
    18 lazy_cat2 = lazy_cat
    19 print(lazy_cat2)
    20 
    21 猫爱喝水
    22 猫爱吃鱼
    23 <__main__.Cat object at 0x0000000004414E48>
    24 猫爱喝水
    25 猫爱吃鱼
    26 <__main__.Cat object at 0x00000000043E3F28>
    临时设置对象属性

    方法中的self参数

    哪一个对象调用的方法,self就是哪一个对象的引用
    在类封装的方法内部,self就表示当前调用方法的对象自己
    调用方法时,程序员不需要传递self参数
    在方法内部
    可以通过self.访问对象的属性
    也可以通过self.调用其他的对象方法
     1 class Cat:
     2     def eat(self):
     3         # 哪一个对象调用的方法,self就是哪一个对象的引用
     4         print("%s爱吃鱼" % self.name)
     5     def drink(self):
     6         print("猫爱喝水")
     7 # 创建猫对象
     8 tom = Cat()
     9 # 可以使用.属性名,利用赋值语句就可以
    10 tom.name = "Tom"
    11 tom.drink()
    12 tom.eat()
    13 print(tom)
    14 # 再次创建猫对象
    15 lazy_cat = Cat()
    16 lazy_cat.name = "大懒猫"
    17 lazy_cat.drink()
    18 lazy_cat.eat()
    19 print(lazy_cat)
    20 lazy_cat2 = lazy_cat
    21 print(lazy_cat2)
    22 
    23 猫爱喝水
    24 Tom爱吃鱼
    25 <__main__.Cat object at 0x0000000004294E10>
    26 猫爱喝水
    27 大懒猫爱吃鱼
    28 <__main__.Cat object at 0x0000000004294EB8>
    29 <__main__.Cat object at 0x0000000004294EB8>
    设置对象属性

    不推荐在类的外部给对象增加属性

    如果在运行时,没有找到属性,程序会报错

    对象应该包括哪些属性,应该封装在类的内部

    初始化方法

    类名()创建对象时 1:为对象咋内存中分配空间--创建对象 2: 为对象属性设置 初始值--初始化放放init

    __init__定义一个类具有哪些属性的方法

    如果希望在创建对象的同时,就设置对象的属性,可以对__init__方法进行改造

    1:把希望设置的属性值,定义成__init__方法的参数

    2:在方法内部使用self.属性 = 形参 接收外部传递的参数

    3:在创建对象时,使用类名(属性1,属性2..)调用

    class  Cat:
        def __init__(self, new_name):
            #print("这是一个初始化方法")
            # self.属性 = 形参
            self.name = new_name
            print("%s名字" % self.name)
    # 使用类名() 创建对象时,自动调用__init__
    tom = Cat("Tom")
    lazy_cat = Cat("大懒猫")
    初始化的同时设置初始值

    内置方法和属性

    当一个对象从内存中销毁前,会自动调用__del__方法

    使用print输出对象变量,默认情况下回输出这个变量引用的对象 是由哪一个类创建的对象,以及在内存中的地址(十六进制)

    希望看到自定义的信息,可以使用__str__方法 返回一个字符串

    class Cat:
        def __init__(self, new_name):
            self.name = new_name
            print("%s来了" % self.name)
        def __del__(self):
            print("%s 我去了" % self.name)
    
    # tom 是一个全局变量
    tom = Cat("Tom")
    print(tom.name)
    # del 关键字可以删除一个对象,调用__del__方法
    del tom
    print("-" * 50)
    del

    Tom来了
    Tom
    Tom 我去了
    --------------------------------------------------

    class Cat:
        def __init__(self, new_name):
            self.name = new_name
            print("%s来了" % self.name)
        def __del__(self):
            print("%s 我去了" % self.name)
        def __str__(self):
            return "我是小猫[%s]" % self.name
    
    # tom 是一个全局变量
    tom = Cat("Tom")
    print(tom)
    str

    Tom来了
    我是小猫[Tom]
    Tom 我去了

  • 相关阅读:
    Yii常用路径说明
    PHP-redis中文文档
    PHP 判断客户端是IOS还是Android
    yiii 框架登录 判断是否是游客模式及未登录状态
    php实现数字格式化,数字每三位加逗号的功能函数
    php array_udiff_uassoc比较数组的键值与值
    php--数组函数array
    安装Postman
    vue指令
    vue 错误记录
  • 原文地址:https://www.cnblogs.com/joycezhou/p/11380251.html
Copyright © 2011-2022 走看看