Python3零基础学习笔记十三

标准输入输出文件:
        标准输入文件   sys.stdin         
        标准输出文件   sys.stdout       就是输出   相当于 print()
        标准错误输出   sys.stderr        
      模块名:sys
      说明:每一个python程序启动后都会有以上三个文件已经打开供我们使用
      示例:
       ###sys.stdin.read(num)   就是输入   相当于 input()  num代表读取最大字符数
       ###这个方法如果num不存在的情况下,需要文件结束符,Linux下是Ctrl+D
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
面向对象编程:
       类 class 和 对象 object
什么是对象:
       对象是指现实中的物体或者实例
什么是面向对象:
       把一切看成对象(实例),对象和对象之间用方法(行为)建立关联关系
什么是类:
       把拥有相同属性和行为的对象分为一组,即为一个类
       类是用来描述对象的工具


类的创建语法:
     class 类名(继承列表):
"""类文档字符串"""
实例方法(类内的函数method)的定义
类变量(class variable)定义
类方法(@classmethod)定义
静态方法(@staticmethod)定义
类的作用:
可以用类创建一个或多个此类的对象(实例)
类内的变量和方法能够被此类所创建的所有实例共同拥有
说明:
  类名必须是标识符(与变量命名规则相同,建议首字母大写)
类名实质上就是变量,他绑定一个类实例
        类的定义最后边要加上两个空行,以告诉解释执行器,类的定义已经结束
示例:
      class Dog:
pass
术语:
    类           对象 实例
 class      object      instance
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
构造函数:
     构造函数:
构造函数的调用表达式:
     类名([创建传参列表])
     []里的内容代表可以省略
     作用:创建这个类的实例对象,并返回此实例对象的引用关系


示例:
class Dog:
    pass
  dog1 = Dog()       # 用类来创建一个对象,用dog1绑定
print(id(dog1))       # 打印dog1所在的内存地址
  dog1 = Dog()       # 用类创建另外一个对象,用dog2绑定
print(id(dog1))
print(dog1 is dog2)       # 判断两只狗是不是同一条狗


实例说明:
实例有自己的作用域或名字空间,可以为该实例添加实例变量(属性)
实例也可以调用类的方法
实例可以访问类中的变量


实例变量(属性 attribute)
每个实例可以有自己的变量,称为实例变量(属性)


属性的使用方法:
实例.属性名


属性的赋值规则:
(同变量规则相同)
1.首次为属性赋值则创建此属性
2.再次为属性赋值则改变属性的绑定关系
示例:
class Dog:
     pass
dog1 = Dog()
  dog1.kinds = '京巴'    # 为dog1 绑定的实例添加kinds属性
dog1.color = '白色'    # 继续添加
print(dog1.kinds,dog1.color)    # 访问属性
dog1.color = '黄色'
    print(dog1.color)
           注:用dir(dog1) 查看dog1绑定的所有变量(属性)
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
写一个student类,对象属性:name,age,score,用来保存三者。
1)写一个函数
input_student读入n个学生的信息,用对象来储存字啊写信息(不用字典)
  并返回对象的列表。
2)写一个函数output_student打印这些学生信息(格式不限)
示意:  class Student:
       pass
               def input_stu():
            ...
       def output_stu(lst):
            # 打印学生信息
       def main():
            L = input_stu()
            output_stu(L)
    main()
删除属性:
      del语句
      语法: del 对象.属性名
      示例:
class Student()
pass
stu = Student()
stu.name = 'xiaozhang'
print(stu.name)
del stu.name            #  删除此属性
print(stu.name)         #  属性错误,因为属性不存在了
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
实例方法: method
      语法:
class 类名(继承列表):
def 实例方法名(self,参数1,参数2,....)
语句块
      作用:
用于描述一个对象的行为,让此类型的全部对象都拥有相同的行为
      说明:
实例方法的实质是函数,是定义在类内的函数
实例方法的第一个参数代表调用这个方法的实例,一般命名为‘self’
      实例方法的调用语法:
实例.实例方法名(调用参数)

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


例子:
     class Dog:
"""docstring for Dog"""
def eat(self, food):
"""小狗有能够吃东西的行为"""
print('小狗吃了',food)
self.food = food
____# 为self绑定的对象添加food属性来记录狗吃的东西,
____# self.food这里的food是为self添加的属性,后边的food是一个传参
____# 这个属性只有调用了此函数的实例对象才会拥有。

def sleep(self,hour):
print('小狗睡了',hour,'小时')

def food_info(self):
"""能否在此方法内得到小狗上次吃的食物是什么"""
print('上次吃的是:....',self.food)

     dog1 = Dog()      # 创建一个实例对象
     dog2 = Dog()

     dog1.eat('骨头')  # 让狗吃东西
     dog1.sleep(1)    # 让狗睡觉

     # 另一种方法
     Dog.food_info(dog1)
     Dog.food_info(dog2)
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
初始化方法:
     作用:
对新创建的对象添加属性等必须的资源
     语法:
class 类名:
def __init__(self[,参数列表]):
语句块
[]  代表其中内容可以省略
     说明:
初始化方法名必须为__init__不可改变
初始化方法会在构造函数创建实例后自动调用,且将实例自身通过第一个参数self
传入__init__方法
构造函数的实参将通过__init__方法的参数列表传到__init__方法中
初始化方法内如果需要return语句返回,则必须返回None
     示例:426test3.py
析构方法:
     语法:
class 类名:
def  __del__(self):
语句块
     作用:
在对象被销毁之前被"""""自动"""""调用,主要负责清理对象所占用的资源。
     说明:
python建议尽可能少的在析构方法内做事情,因为销毁时间难以确定。
    如果删除了一个实例对象,但是后边还需要运行很久,__del__不一定会在删除对象
之前运行,导致之前的程序未运行完成(__del__内的部分)
示例:
     class FileManage:
'''定义一个文件管理员类'''
def __init__(self,filename='xxx.py'):
self.file = open(filename,'w')

def writeline(self,string):
self.file.write(string)
self.file.write('\n')

def __del__(self):
'''析构方法会在对象被销毁前自动调用'''
self.file.close()
print('文件已关闭')

     fm = FileMange()
     fm.writeline('hello world')
     fm.writeline('这是中文第二行')
→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→→
预置的实例属性:
     __dict__属性:
用于绑定一个储存此实例自身变量的字典
     __class__属性:
用于绑定创建此实例自身变量的字典
    示例:
class Dog:
pass
dog1 = Dog()
print(dog1.__dict__)
dog1.color = 'white'
print(dog1.__dict__)
print(dog1.__class__)
用于类的函数:
     isinstance(obj,class_or_tuple)  

返回这个对象obj是否是某个类的对象,或者是某些类中的一个类的对象,如果是则返回True,

        如果不是则返回False

     type(obj) 
返回对象的类
     例如:
>>> class A:
...     pass
... 
>>> a = A()
>>> isinstance(a,A)
True
>>> isinstance(a,int)
False
>>> isinstance(a,(A,int))
True
>>> isinstance(a,(str,int))
False
>>> type(a)
<class '__main__.A'>

猜你喜欢

转载自blog.csdn.net/Sundy_L/article/details/80382512