学习笔记60_python面向对象
****
//可以给函数参数设置默认值
def stu_register(name,age,course,country="CN"):
若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
,例如:def stu_register(name,age,*args):  ,这个*args就相当于c#中的 param [] class1  args 这样子
//类的创建
class ClassName
'''
注意,属性可以在__init__中,直接定义
'''
PropertyName = value #可以这样来定义类的属性,相当于c#中的类的静态属性,属于类而不属于对象,使用 " 类名.属性"来调用,又叫"公有变量"
def __init__(self,Name,age):
#这里是属于对象的属性
self.Name = 'aaaaa'
self.age =11
函数体
def hellow(self):
#'''要在其他成员方法中使用self,也要这样'''
print("my name is %s" ,self.Name)
@property #定义只读属性,可以使用 a = instance.fullnfo #不需要a =instacne.fullinfo(),原理是,修饰器将 fullinfo 从一个指向方法的变量,替换成一个执行结果
def fullInfo(self):
return self.Name + self.age
@classmethod #定义类方法,只能访问类变量,而不能访问实例变量,例如这里,只能访问 self.Name,不能访问self.PropertyName
def Show(self):
#todo
@staticmethod #定义静态方法,这里原本hellow的调用,可以 instance.hellow()即可,不用传参,而这里,要变成 instance.hellow2(instance),或者 ClassName.hellow2(instance)
def hellow2(self):
print("my name is %s" ,self.Name)
@fullInfo.setter #定义可改属性,使用的时候,直接 instance.fullinfo = "aaa"
def fullinfo(self,Name)
self.Name=Name
@fullinfo.deleter,使用的时候,就可以 del instance.fullinfo ,那么就会调用这里的代码了
def fullinfo(self)
self.isdelete = true;
     def __getitem__(self, key):  #内置函数,相当于C#中的索引器 调用  result = obj['k1']   , 自动触发执行 __getitem__
            print('__getitem__',key)
     
         def __setitem__(self, key, value):   #内置函数,相当于C#中的索引器 调用  obj['k2'] = 'alex'  , 自动触发执行 __setitem__
            print('__setitem__',key,value)
def __delitem__(self, key):
            print('__delitem__',key)
//self相当于this的意思

(以上的类属性,相当于c#中的类的静态成员)
类的继承:

**************导入包的两中办法******************
1.全部导入 import 包名 ,一般是文件名,类似于 demo.py,
那么,实例化时,就要 a = new demo.Class()
2.部分导入 from demo import Class1,Class2,仅仅导入Class1和Class2
3.导入所有 from demo inport *,导入所有;
4.导入特殊模块
import os #会默认去默认的路径下去找
******************************************************************************************************************************************
//关于构造函数
class childClass(father1,father2):#可以多重继承
def__init__(self):
#自己的构造方法,不会默认调用父类的构造方法,如果想掉,要
super()#这样子来掉父类的构造方法
******************************************************************************************************************************************
子类直接写方法,如果跟父类方法名一致,就直接覆盖了
******************************************************************************************************************************************
//关于多重继承的构造函数
多重继承的supper():如果 father1继承于father2 (他们都写了构造函数),
child继承与father1和father2,那么father1和father2的构造函数仅仅会被调用一次,而不会 father1调一次fanther2, father2又调一次它自己的。
******************************************************************************************************************************************
//创建类的私有属性
class myclass:
__privateProperty = "aaaa" #这个为私有属性,特点是在前面加两个"_",那么就跟C#的私有属性一样了
//
//python是没有 protect 属性的
学习笔记60_python面向对象的更多相关文章
- UML和模式应用学习笔记-1(面向对象分析和设计)
		
UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...
 - Lua学习笔记:面向对象
		
Lua学习笔记:面向对象 https://blog.csdn.net/liutianshx2012/article/details/41921077 Lua 中只存在表(Table)这么唯一一种数据结 ...
 - ASP.NET MVC 学习笔记-7.自定义配置信息    ASP.NET MVC 学习笔记-6.异步控制器  ASP.NET MVC 学习笔记-5.Controller与View的数据传递  ASP.NET MVC 学习笔记-4.ASP.NET MVC中Ajax的应用  ASP.NET MVC 学习笔记-3.面向对象设计原则
		
ASP.NET MVC 学习笔记-7.自定义配置信息 ASP.NET程序中的web.config文件中,在appSettings这个配置节中能够保存一些配置,比如, 1 <appSettin ...
 - Java学习笔记之---面向对象
		
Java学习笔记之---面向对象 (一)封装 (1)封装的优点 良好的封装能够减少耦合. 类内部的结构可以自由修改. 可以对成员变量进行更精确的控制. 隐藏信息,实现细节. (2)实现封装的步骤 1. ...
 - 我的Java学习笔记-Java面向对象
		
今天来学习Java的面向对象特性,由于与C#的面向对象类似,不需详细学习 一.Java继承 继承可以使用 extends 和 implements 这两个关键字来实现继承. extends:类的继承是 ...
 - 《JavaScript高级程序设计》学习笔记(5)——面向对象编程
		
欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第六章内容. 1.面向对象(Object ...
 - javascript 学习笔记之面向对象编程(一):类的实现
		
~~想是一回事,做是一回事,写出来又是一回事~~一直以来,从事C++更多的是VC++多一些,从面向过程到面向对象的转变,让我对OO的编程思想有些偏爱,将一个客观存在的规律抽象出来总是让人比较兴奋,通过 ...
 - 【原】Java学习笔记019 - 面向对象
		
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 仔细想一想,Ani ...
 - Java学习笔记--关于面向对象的思考
		
1.不可改变的类生成对象以及变量的范围 2. 关键词this的使用 3.用类抽象的思想制作软件 4.通过关系模型建立类 5.使用面向对象的范例来设计程序,遵循类设计指导. 已经学习了:怎么定义类已经创 ...
 
随机推荐
- Spring Boot (九): 微服务应用监控 Spring Boot Actuator 详解
			
1. 引言 在当前的微服务架构方式下,我们会有很多的服务部署在不同的机器上,相互是通过服务调用的方式进行交互,一个完整的业务流程中间会经过很多个微服务的处理和传递,那么,如何能知道每个服务的健康状况就 ...
 - 使用echarts画一个类似组织结构图的图表
			
昨天,写了一篇关于圆环进度条的博客(请移步:Vue/React圆环进度条),已经烦不胜烦,今天又遇到了需要展示类似公司的组织结构图的功能需求,要冒了!!! 这种需求,自己用div+css也是可以实现的 ...
 - LitePal的修改和删除操作
			
转载出处:http://blog.csdn.net/guolin_blog/article/details/40083685 传统的修改和删除数据方式 上篇文章中我们已经得知,SQLiteData ...
 - deferred对象和promise对象(一)
			
个人认为阮一峰老师讲的关于deferred对象是最容易理解的. deferred对象是jquery的回调函数解决方案.解决了如何处理耗时操作的问题,对那些操作提供了更好的控制,以及统一的编程接口. d ...
 - Potato土豆win综合提权
			
0x01 NBNS和WDAP NBNS: 在 Windows 系统中的另外一种名称就是 NetBIOS 名称,准确的说 NetBIOS 名称并非是一种名字系统,而是 Windows 操作系统网络的一个 ...
 - PHP current
			
1.函数的作用:返回数组的当前元素 2.函数的参数: @params array &$array 3.例子: <?php $arr = [null,'PK',false]; : ; ec ...
 - c使用二叉链表创建二叉树遇到的一些疑问和思考
			
二叉链表存储二叉树 学习的时候参考的是<大话数据结构>,书中是这样定义的 typedef char TElemType; typedef struct BiTNode { TElemTyp ...
 - windows与office激活
			
暴风官网:www.baofengjihuo.com
 - MyBatis 之源码浅读
			
环境简介与入口 记录一下尝试阅读Mybatis源码的过程,这篇笔记是我一边读,一遍记录下来的,虽然内容也不多,对Mybatis整体的架构体系也没有摸的很清楚,起码也能把这个过程整理下来,这也是我比较喜 ...
 - vue实现跑马灯效果
			
vue实现跑马灯效果为阿中哥哥应援 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> & ...