day34-3 类和对象小知识
属性查找顺序
- 属性查找顺序:先从对象自身查找,对象没有就去类中查找,类中没有则报错
class Student:
name = 'xxx'
def __init__(self, name):
self.name = name
stu1 = Student('张三')
print(stu1.name)
张三
类与对象的绑定方法
class Student:
school = 'a中'
def __init__(self, num, name, age):
self.num = num
self.name = name
self.age = age
def eat(self):
print(self.school)
print(self.name)
self.num += 1
print(f'{self.num} is eat')
print(id(self))
stu1 = Student(1, '张三', 19)
# Student.eat(111) # 在这里self=111,所以会报错,以为111没有school用法
stu1.eat()
print(id(stu1))
a中
张三
2 is eat
2874406763320 # 说明self和stu1是同一个东西
2874406763320
- 针对类而言:eat里的self就是正常传入的参数
- 针对对象而言:eat里的self就是对象本身
类与数据类型
- Python中一切皆对象
lis = [1, 2, 3] # 和下面代码等价,就是一个实例化对象的过程,只是简写了
lis1 = list([1, 2, 3])
print(type(lis)) # <class 'list'> 类型就是一个名为list的类
lis.append(5) # 和下面代码等价,就是一个查找类中方法的过程
list.append(lis1, 5)
print(lis)
print(lis1)
<class 'list'>
[1, 2, 3, 5]
[1, 2, 3, 5]
对象的高度整合
- 在类中封装了一大堆属性,然后又封装了一大堆方法(专门用来控制这些属性),并且在这基础之上,对于不同的对象,这些属性和方法又不相同。
- 个人理解有点类似于闭包
class Student:
def __init__(self, num, name, age):
self.num = num
self.name = name
self.age = age
def eat(self):
print(self.name, '开始吃饭了')
def sleep(self):
print(self.name, '开始睡觉了')
zhangsan = Student(1, '张三', 19)
lisi = Student(2, '李四', 20)
zhangsan.eat()
lisi.eat()
- 闭包函数
import requests
def outter(url)
def sqider():
response = requests.get(url)
response.encoding = 'gb2312'
data = response.text
return data
return sqider
xiaohuar = outter('http://www.xiaohuar.com')
print(xiaohuar)
print(xiaohuar)
- 只是闭包外面套了个函数,而对象外面套了个类
day34-3 类和对象小知识的更多相关文章
- JAVA 类和对象基础知识详解
/*文章中用到的代码只是一部分,需要源码的可通过邮箱联系我 1978702969@qq.com*/ 和C++一样,JAVA也是一门面向对象的语言,其基础和核心是类和对象.而面向对象的思想是来源与显示生 ...
- Spark记录-Scala类与对象小例子
//基类-Person class Person(val na: String, val ag: Int) { //属性 var name: String = na var age: Int = ag ...
- Java编程里的类和对象
像我们搞计算机这块的,都知道这么一件事,当前的计算机编程语言主要分为两大块,一为面向过程,二为面向对象.Java就是一门纯面向对象的语言.学习了一个月左右的Java,在下对于Java当中的类和对象有了 ...
- 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)
写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...
- php有关类和对象的相关知识1
有关类和对象的相关知识 类的自动加载 类的自动加载是指,在外面的页面中,并不需要去“引入”(包含)类文件,但是程序会在需要一个类的时候就自动去“动态加载”该类. 什么叫做“需要一个类”?通常是这样的情 ...
- 在VC6.0下运行C语言程序,以及编程入门必备的常识类小知识!
今天给大家分享在VC6.0环境下编写C语言程序的基本步骤,为初学者打开学习C语言的第一道门.具体步骤如下(如果需要软件资源,可以留言): 1)新建工作区 依次点击 文件--新建--工作区 或是Ctrl ...
- C++基础知识(5)---类和对象
终于把C++中的基础在前面的几篇博客中总结完了,可能还有一些语法还没有总结到,没关系,以后用到了再查资料就好.类是C++中的一个非常重要的概念,这是区别你使用的C++到底是面向过程还是面向对象的一个重 ...
- Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇
一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传 ...
- java类与对象的动手动脑和其他小问题
在Java中,我们可以通过组合一私有字段和一对get/set方法来定义一个属性.私有的变量,共有的方法. package sample; /** * 自定义Java类的示例 */ class MyCl ...
随机推荐
- G - Power Strings
Given two strings a and b we define a*b to be their concatenation. For example, if a = "abc&quo ...
- 切换div位置
通过数组来存放div的属性以及属性值,鼠标点击的时候,切换数组中的元素,然后赋值给div <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- 【转】storm 开发系列一 第一个程序
原文: http://blog.csdn.net/csfreebird/article/details/49104777 --------------------------------------- ...
- js面试题--------JS中数字和字符,布尔类型相加相减问题
JS中数字和字符相加相减问题 <html lang="en"> <head> <meta charset="utf-8" /> ...
- Android - Error: "java.io.IOException: setDataSource failed.: status=0x80000000"
Error: "java.io.IOException: setDataSource failed.: status=0x80000000" 本文地址: http://blog.c ...
- XMPP 协议工作流程具体解释
XMPP 要点. 1. client(C) 和server端(S) 通过TCP连接5222port进行全双工通信. 2. XMPP 信息均包括在 XML streams中.一个XMPP会话, 開始于& ...
- luogu1991 无线通讯网
题目大意 国防部计划用无线网络连接若干个边防哨所.2 种不同的通讯技术用来搭建无线网络:每个边防哨所都要配备无线电收发器:有一些哨所还可以增配卫星电话.任意两个配备了一条卫星电话线路的哨所(两边都ᤕ有 ...
- C#备份及还原数据库的实现代码(粗略) // 利用C#还原数据库(SQL SERVER)备份文件到指定路径
C#数据库备份及还原 1.在用户的配置时,我们需要列出当前局域网内所有的数据库服务器,并且要列出指定服务器的所有数据库,实现代码如下: 取得数据库服务器列表: public ArrayList Get ...
- Codeforces--596A--Wilbur and Swimming Pool(数学)
A - Wilbur and Swimming Pool Crawling in process... Crawling failed Time Limit:1000MS Memory ...
- Codeforces--621B--Wet Shark and Bishops(数学)
B. Wet Shark and Bishops time limit per test 2 seconds memory limit per test 256 megabytes input ...