Python自动化开发课堂笔记【Day06】 - Python进阶(类)

类与对象

面向过程的程序设计:
  优点:极大的降低了程序的复杂度
  缺点:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即使能,也是得大改,改一个组件,牵一发而动全身
面向对象的程序设计
  优点:解决了程序的扩展性,对于某一个对象单独修改,会立刻反映到整个体系中,如对游戏中一个人物参数的特征和技能修改都很容易
  缺点:可控性差,无法像面向过程的程序设计流水线式的可以很精准的预测问题的处理流程和结果,面向对象的程序一旦开始就由对象之间的交互解决问题,谁也无法预测最终结果。

python中一切皆对象,且python3统一了类与类型的概念,类型就是类。

>>> dict #类型dict就是类dict
<class ‘dict‘>
>>> d = dict(name=‘egon‘) #实例化d
>>> d.pop(‘name‘)#向d发一条消息,执行d的方法
‘egon‘

类是一系列对象共有的特征(变量的定义)与技能(函数的定义)的结合体
class Chinese:
    country=‘China‘
    # Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘)
    def __init__(self,name,age,sex):
        #p1.Name=name;p1.Age=age,p1.Sex=sex
        self.Name=name
        self.Age=age
        self.Sex=sex
    def talk(self):
        print(‘talking‘,self)

属性的引用
print(Chinese.country)
print(Chinese.talk)
Chinese.talk(123)
Chinese.x=1
print(Chinese.x)
Chinese.country=123123123123123
print(Chinese.country)

#实例化
class Chinese:
    country = ‘China‘
    # Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘)
    def __init__(self, name, age, sex):
        # p1.Name=name;p1.Age=age,p1.Sex=sex
        self.Name = name
        self.Age = age
        self.Sex = sex
    def talk(self):
        print(‘%s is talking‘ %self.Name)
p1=Chinese(‘egon‘,‘18‘,‘male‘) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘)
p2=Chinese(‘alex‘,‘9000‘,‘female‘) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘)

对象的使用:只有一种,就是属性引用
print(p1.Name)
print(p1.Age)
print(p1.Sex)
print(p2.Name)
print(p1.country)
print(p2.country)
p1.talk()
p2.talk()

class Chinese:
    country = ‘China‘
    def __init__(self, name, age, sex):
        # self.country=123123123123123123
        self.Name = name
        self.Age = age
        self.Sex = sex
    def talk(self):
        print(‘%s is talking‘ %self.Name)
查看类名称空间
print(Chinese.__dict__)
对象的空间
p1=Chinese(‘egon‘,‘18‘,‘male‘) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘)
p2=Chinese(‘alex‘,‘180‘,‘male‘)
print(p1.__dict__)
print(p1.Age) #p1.__dict__[‘Age‘]
print(p1.country,id(p1.country))
print(p2.country,id(p2.country))
print(Chinese.talk)
print(p1.talk)
p1.talk() #Chines.talk(p1)
print(p2.talk)
p2.talk()#chinese.talk(p2)
时间: 2024-08-05 11:13:22

Python自动化开发课堂笔记【Day06】 - Python进阶(类)的相关文章

Python自动化开发课堂笔记【Day06】 - Python基础(模块)

正则模块 常用正则表达式列表(盗图一张:-P) 1 import re 2 3 print(re.findall('\w','abc123d_ef * | - =')) 4 print(re.findall('\W','abc123d_ef * | - =')) 5 print(re.findall('\s','abc1\n23\td_ef * | - =')) 6 print(re.findall('\S','abc1\n23\td_ef * | - =')) 7 print(re.finda

Python自动化开发课堂笔记【Day07】 - Python进阶(类)- 02

类与对象 对象是特征(变量)与技能(函数)的结合体,类是一系列对象共有的特征与技能的结合体 现实生活中:先有对象,再总结归纳出类 程序中:一定是先定义类,再实例化出对象定义类的语法:class 类名: '''注释''' 类体(可以是任意代码) 1 class Chinese: 2 country = 'China' 3 def __init__(self,name,age): 4 self.name = name 5 self.age = age 6 print('--->',self.name

Python自动化开发课堂笔记【Day08】 - Python进阶(面向对象的高级用法,网络编程)

面向对象的高级用法 1. __str__ 只要执行打印对象的操作,就会触发该对象类中的__str__方法(也就是对象的绑定方法)它是一种默认的方法,默认的打印输出为<__main__.Foo object at 0x003EE350>,但是如果将该绑定方法在类中重写的话,要求必须有以字符串类型的返回值,返回形式可以自己设定. class Foo: def __init__(self,name,age): self.name = name self.age = age def __str__(s

Python自动化开发课堂笔记【Day15】- Django基础

WEB框架 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. 最简单的Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,返回. 如果要动态生成HTML,就需要把上述步骤自己来实现.不过,接受HTTP请求.解析HTTP请

Python自动化开发课堂笔记【Day04】 - Python基础(函数补充,模块,包)

表达式形式的yield yield的语句形式: yield 1yield的表达式形式: x=yield 1 x=yield 2 g.send('1111') #先把1111传给yield,由yield赋值给x,然后再往下执行,直到再次碰到yield,然后把yield后的返回值返回 协程函数示例 1 def gen(func): 2 def wrapper(*args,**kwargs): 3 res = func(*args,**kwargs) 4 next(res) #相当于next(g)或者

Python自动化开发课堂笔记【Day04】 - Python基础(函数)

函数对象 函数是第一类对象,即函数可以当作数据传递.具体用法分成以下四类: 1. 可以被引用 1 def foo(): 2 print('from foo') 3 func=foo 4 print(foo) ---> <function foo at 0x00386C48> --> foo函数在内存中地址 5 print(func) ---> <function foo at 0x00386C48> 6 foo() ---> from foo 7 func(

Python自动化开发课堂笔记【Day03】 - Python基础(字符编码使用,文件处理,函数)

字符编码使用 1. 文本编辑器如何存取文件 文本编辑器相当一个运行在内存中的进程,所以文件内容在编辑未存储时都是在内存中的,尚未存储在硬盘之中,在没有保存之前,所编辑的任何文本都只是一堆字符,没有任何逻辑上的意义,当存储文件的时候需要以一定的编码格式存储于硬盘之中,当进行文件读取的时候也需要以同样的编码格式进行读取到内存之中进行操作,如果存储文件的编码和读取文件的编码不一致则会引起读取过程中的乱码导致文件操作失败. P.S. --> Python解释器执行py文件的原理. Step1. Pyth

Python自动化开发课堂笔记【Day14】 - Java Script

JavaScript的基础 1. JS的引入方式 1 直接编写 <script> alert('hello yuan') </script> 2 导入文件 <script src="hello.js"></script> 2. JS的变量.常量和标识符 a. JS的变量 如何在JS中定义使用变量 1.声明变量时不用声明变量类型. 全都使用var关键字; var a;<br>a=3; 2.一行可以声明多个变量.并且可以是不同类型

Python自动化开发课堂笔记【Day15】- jQuery

jQuery 1. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE! 2. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 3. jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTMLdocuments.events.实现动画效果,并且方便地为网站提供AJAX交互. 4. jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应