1. using System; using System.Text; namespace DLL { public class Class1 { public void showStr() { Console.WriteLine("); } } } 2. using System; using System.Text; using dll = DLL; public class Program { static void Main(string[] args) { dll::Class1 c1…
一.Python类的名称空间 class Student(object): School = '北京大学' def __init__(self): pass stu1 = Student() stu1.name = '小明' print(stu1.School) print(Student.name) #error type object 'Student' has no attribute 'name' 1.类可以调用对象的属性吗? 2.对象可以调用类属性吗? 通过上面的代码可以看出,类无法访…
对象的属性: 不仅在__init__里面添加,还可以在其他方法或者类外面添加 class Game: def __init__(self,name,age): self.name = name self.age = age p1 = Game('盖伦', 18) p1.sex = 'male' # 类外面添加对象属性 print(p1.__dict__) 类的属性: 不仅在类内部添加,还可以在类外面添加 class Game: def __init__(self,name,age): self.…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using reflector = System.Reflection; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { reflector::Asse…
python基础--类名称空间与对象(实例)名称空间 1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类的数据属性是共享给所有对象 print(id(g1.camp)) #引用的地址是一样的 print(id(Garen.camp)) 输出结果为: 364617767096 364617767096 其中类的函数属性是绑定到所有对象 print(id(g1.attack)) #两个引用地址不一样 pr…
代码块的分类 python中分几种代码块类型,它们都有自己的作用域,或者说名称空间: 文件或模块整体是一个代码块,名称空间为全局范围 函数代码块,名称空间为函数自身范围,是本地作用域,在全局范围的内层 函数内部可嵌套函数,嵌套函数有更内一层的名称空间 类代码块,名称空间为类自身 类中可定义函数,类中的函数有自己的名称空间,在类的内层 类的实例对象有自己的名称空间,和类的名称空间独立 类可继承父类,可以链接至父类名称空间 正是这一层层隔离又连接的名称空间将变量.类.对象.函数等等都组织起来,使得它…
一 面向对象初识 Python要么是面向过程要么是面向对象. 概念及优缺点: 面向过程的程序设计的核心是过程,过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了程序的复杂度 缺点是:一套流水线或者流程就是用来解决一个问题,生产汽水的流水线无法生产汽车,即便是能,也得是大改,改一个组件,牵一发而动全身. 应用场景:一旦完成基本很少改变的场景,著名的例子有Linux內核,git,以及Apache HTTP Server等. 面向对象的…
第七章面向对象 1.面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式 优点:复杂的问题流程化.进而简单化 ​ 缺点:可扩展性差 2.面向对象 核心"对象"二字,对象指的是特征(变量)与技能(函数)的结合体,需要创造出一个个的具体存在的对象,程序的执行就是由对象直接交互完成 优点:可扩展性强 ​ 缺点:编程的复杂度高于面向过程 7.1 类 7.11 定义类 1.类:对象是特…
创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 静态属性就是直接在类中定义的变量(字段) 动态属性就是定义在类中的方法 其中类的数据属性是共享给所有对象的 >>>id(egg.role) 4341594072 >>>id(Person.role) 4341594072 而类的动态属性是绑定到所有对象的 >>>egg.attack <bound method Person.a…
第九章 内存模型和名称空间 1.不要将函数定义或者变量声明放到头文件中. 2.头文件常包含的内容:函数原型.使用#define或者const定义的常量.结构声明.类声明.模板声明.内联函数. 3.避免多次包含同一个头文件的技术:#ifndef/#endif.仅当以前没有使用预处理器编译指令#define定义一个头文件名称时,才处理#ifndef和#endif之间的语句. 4.链接性描述了名称如何在不同单元间共享.链接性为外部的名称可在文件间共享,链接性为内部的名称只能由一个文件中的函数共享.自动…
路由控制 一.简单路由配置 url(r'^booklist$', views.booklist) 第一个参数是正则表达式,第二个参数是视图函数 每个正则表达式前面的'r' 是可选的但是建议加上.它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义 url(r'booklist', views.booklist) url(r'booklistadd', views.booklistadd) 如果不加^ 和 $ ,由于路由匹配是从上往下匹配的,若是要匹配 booklista…
第9章 内存模型和名称空间 1. 头文件常包含的内容: 函数原型. 使用#define或const定义的符号常量. 结构声明. 类声明. 模板声明. 内联函数. 2. 如果文件名被包含在尖括号中,则C++编译器将在存储标准头文件的主机系统的文件系统中查找.但如果头文件名包含在双引号中,则编译器将首先查找当前的工作目录或源代码目录(或其他目录,这取决于编译器).如果没有在那里找到头文件,则将在标准位置中查找.因此在包含自己的头文件时,应使用引号而不是尖括号. 3. 链接程序将目标文件代码.库代码和…
今天学习内容有函数的返回值.函数参数的使用.名称空间与作用域.函数嵌套. 下来我们一一查看. 函数的返回值 看几个栗子: def func(x): y=func() print(y) def foo(): return None res=foo() print(res) def foo(): } res=foo() print(res['a']) def foo(): },,,] res=foo() print(res) 结果:({'a': 1}, 1, 'a', [1, 2]) def foo…
目录 路由控制 一.简单路由配置 二.无名分组 三.有名分组 四.反向解析 五.路由分发 六.名称空间(一般不使用) 七.伪静态 八.Django 2.x和Django 1.x 路由层区别 九.APPEND_SLASH 路由控制 一.简单路由配置 url(r'^booklist$', views.booklist) 第一个参数是正则表达式,第二个参数是视图函数 每个正则表达式前面的'r' 是可选的但是建议加上.它告诉Python 这个字符串是"原始的" -- 字符串中任何字符都不应该转…
今日主要内容 1.  函数默认值细节(*) 2.  数据类型补充:三元表达式.列表推导式.字典推导式 (***) 3.  函数对象:函数名的各种应用场景 (*****) 4.  名称空间与作用域:解释变量重复与冲突问题 (*****) 5.  函数的潜逃定义:在函数内部定义函数 (*****) 1.  函数默认值细节 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被定义为当时变量存在的值 a = 10def fn(num = a): # num = 10 a = 20 print(…
一,复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascll进行比较 # print('a' > 'A') #True # print('ac' > 'ab') #True # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类 # -- 位置实参:给位置形参,必须按位置 # -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类 # -- 无值位置 #…
复习 1. 字符串的比较: 2. 函数的参数:形参与实参 3. 实参的分类:位置实参与关键字实参 4. 形参分类: 1.无值位置形参 2.有值位置形参 3.可变长位置形参 4.有无值关键字形参 5.可变长关键字形参 5. 打散机制 今日内容 1. 函数默认值的细节.* 2. 数据类型的补充:语法简单,经常去使用就OK *** ----- 三元表达式  |  列表推导式  |  字典推导式 3. 函数对象:函数名的各种应用场景  ***** 4. 名称空间与作用域:解释变量名重复与从图冲突问题 …
 复习   1.字符串的比较; 2.函数的参数; ******实参与形参的分类: 3.函数的嵌套调用:     # 字符串的比较#  -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数# 1)实参与形参:# -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类# -- 位置实参:给位置形参,必须按位置# -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类# -- 无值位置# -- 有值位置#…
命名空间别名限定符(::)用于查找标识符,它在指定的别名的命名空间中查找运算符,如下代码是在全局名称空间中查找System.Console.WriteLine("Hello World");global是全局名称空间的别名. global::System.Console.WriteLine("Hello World"); 我们可以定义自己的名称空间别名,如下代码在我们指定的别名Col名称空间中查找List<int>. // using Col=Syste…
复习 # 字符串的比较 # -- 按照从左往右比较每一个字符,通过字符对应的ascii进行比较 # 函数的参数 # 1)实参与形参: # -- 形参:在函数定义时()中出现的参数 # -- 实参:在函数调用时()中出现的参数 # 2)实参的分类 # -- 位置实参:给位置形参,必须按位置 # -- 关键字实参:给位置与关键字形参,不需要按顺序 # 3)形参的分类 # -- 无值位置 # -- 有值位置 # -- 可变长位置 # -- 有无值关键字 # -- 可变长关键字 def fn(a, b=…
复习, 昨天讲了字符串的比较,按照从左往右比较每一个字符,通过字符对应的ASCII码进行比较 函数的参数,‘ 实参与形参 形参:在函数定义时()中出现的参数 实参,在函数调用时()中出现的参数 实参的分类 位置实参:给位置形参传值,必须 按位置 关键字实参:给位置与关键字形参,不需要按照顺序 形参的分类, ··无值位置形参 ··有值位置形参 ··可变长位置形参 ··有无值关键字形参 ··可变长关键字形参 def fn(a,b=10,*args,x,y=10,z,**kwargs):pass 4:…
最开始对名称空间的了解是在学习函数的时候,那时候知道了作用域的查找顺序,以及全局名称空间和局部名称空间,产生疑惑的时候为学递归的时候,那时候还没有名称空间这个概念,只知道递归有个最大深度,那时候以后递归产生的名称空间是一层套一层的,以及类里面的名称空间,所以产生了深究名称空间的想法,这才诞生了这篇博客,本篇博客借鉴了python的命名空间的内容,本人对里面的例子都试验了并发现了一个错误,在类中定义的列表生成式产生的命名空间也可以访问到类属性. 例子 # a.py lis = ['musibii'…
1 类名称空间 创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类的良好总属性:数据属性和函数属性 其中类的数据属性是共享给所有对象 print(id(g1.camp))     #引用的地址是一样的 print(id(Garen.camp)) 输出结果为: 364617767096 364617767096 其中类的函数属性是绑定到所有对象 print(id(g1.attack))      #两个引用地址不一样 print(id(Garen.attac…
# 名称空间:就是名字与地址的对应关系,可以被Python解释器遍历查找,采用堆栈存储方式 # 三种名称空间# Built-in:内置名称空间:系统级,一个:随解释器执行而产生,解释器停止而销毁# Global:全局名称空间:文件级,多个:随所属文件加载而产生,文件运行完毕而销毁# Local:局部名称空间:函数级,多个:随所属函数执行而产生,函数执行完毕而销毁 # 注:文件中的if.while.for.with这些能产生缩减的关键字并不能产生名称空间# 加载顺序:Built-in > Glob…
利用反射中的程序集类(Assembly--抽象类)动态加载类库(.dll)或者可执行程序(.exe). 优点:①.可以消除if条件的逻辑判断.②.减少内存资源.③.有利于程序扩展. 缺点... 使用静态方法LoadFrom()加载外部.dll实例. //Assembly程序集中有三个加载程序集的方法(Load().LoadFrom()和LoadFile()). private void btnassembly_Click(object sender, EventArgs e) { // obje…
一.面向对象导入 1.含义: ①面向过程: 重过程:解决问题,考虑的是解决问题的流程 解决问题的思路清晰,但拓展性不强 ②面向对象: 重对象:解决问题,找到解决问题的对象 解决问题的思路可能不止一条(理解解决问题的难度增加),但拓展性强 2.python语言:面向对象的语言 python用面向过程和面向对象两种方式解决问题 函数与方法:都是解决问题的功能 函数:通过函数名直接调用 方法:通过附属者.语法来调用 变量:通过变量名访问变量值 属性:通过附属者.语法来访问变量值 3.重点:面向对象的核…
一.面向对象 1.面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式. 优点:复杂的问题流程化.进而简单化 缺点:可扩展性差 2.面向对象 核心"对象"二字,对象指的是特征与技能的结合体, 基于该思想编写程序就好比在创造一个世界,你就是这个世界的上帝,是一种 上帝式的思维方式 优点:可扩展性强 缺点:编程的复杂度高于面向过程 重点:面向对象的核心体现是将数据和处理数据的程序…
一.课前回顾 类:具有相同属性和方法的一类事物 实例化:类名() 过程: 开辟了一块内存空间 执行init方法 封装属性 自动的把self返回给实例化对象的地方 对象:实例 一个实实在在存在的实体 组合: 一个类的对象 作为另一个类对象的属性 让两个类之间产生关系 __dict__(): 查看类中所有静态属性和方法 查看所有对象的属性.类对象指针 静态属性:类的属性,所有的对象共享这个变量 对象名:去修改 类的静态属性 在对象的空间中有创建了一个属性,而不能修改类中属性的值 操作静态属性 应该…
Django---路由系统,URLconf的配置,正则表达式的说明(位置参数),分组命名(捕获关键字参数),传递额外的参数给视图,命名url和url的反向解析,url名称空间 一丶URLconf配置       URL配置是支撑网站的目录,本质是URL与该URL调用的视图函数之间的映射表 urlconf的格式 from django.conf.urls import url urlpatterns = [ # url() 是包含 请求的url和视图的对应关系的函数 # def url(regex…
一.对象的特有名称空间 # 对象独有的名称空间:在产生对象时就赋初值 '''class ted: def func(): 当func里不存在参数时,调用时不需要给值 print('hah')ted.func()''''''class ted: def func(self): print('hah')ted.func('useless')'''#类里面的方法属于谁的名称空间,就被谁调用#类里面的方法的名称空间不属于对象,怎么实现调用这些方法#方法如下:#1class student: def se…