类属性

面向对象与继承

百般思念 提交于 2019-11-26 12:49:21
1、编程的方式 2、面向对象的基本概念 3、类的基本概念 4、类的定义与调用——简单代码举例 注:建议类名的开头字母用大写,在Python中,类内的函数称作方法,类外的函数还是称作函数。 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu #类 classPerson: i =10#属性(变量) defeat(self):#方法(函数) print("eating...") pass #类的调用 a = Person() a.eat() #运行结果: eating... classPerson(): #对象属性 构造方法 在实例化对象时会自动调用 # 实例化的对象就具有name和age两个属性 #self是指当前的对象 self不是关键字可以被代替,但是习惯使用self指代当前对象 def__init__(self,name,age): # 通过构造方法声明了两个对象属性 #对象.name属性 = name参数 self.name = name self.age = age #声明一个类方法 defspeak(self): print("Hello,my name is %s,and I'm %d years old"%(self.name,self.age)) #创建实例对象 会触发构造方法

Java_day6

 ̄綄美尐妖づ 提交于 2019-11-26 10:29:56
第一部分:面向对象编程的四个基础特点 封装 1,属性的封装 : 将类中的数据【隐藏】 主要属性的访问权限进行控制 public 任何对象可以方法 protected 当前类对象和子类对象可以访问 private 只能在当前类中访问 不写 默认 当前包内可以访问 发现问题:如果属性加上了private修饰,那么这个属性在其他类中都无法访问。 解决: 提供方法访问 2,方法的封装 : 将类中方法的具体实现隐藏, 为了提高代码的重用 第二部分:方法的重载 1,定义: 【方法名相同】,【方法的参数列表不同】不讨论返回值 , 的多个方法 这些方法被称为方法的重载 参数列表不同包括个数和数据类型的排列都不一样。 public void show(int a){} public voud show(short b){} public void show(long c){} public void show(double d){} 问题一: 方法1 和 方法2 是否是重载?否 问题二: 方法1 和 方法3 是否是重载?是 问题三: 方法1 和 方法4 是否是重载?是 问题三: 方法3 和 方法4 是否是重载?是 问题三: 方法5 和 方法6 是否是重载?是 问题三: 方法7 和 方法8 是否是重载?否 /** * 重载<br> * */ public class Overload { // 方法

Python中的单例设计

给你一囗甜甜゛ 提交于 2019-11-26 10:27:20
01. 单例设计模式 设计模式 设计模式 是 前人工作的总结和提炼 ,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 单例设计模式 目的 —— 让 类 创建的对象,在系统中 只有 唯一的一个实例 每一次执行 类名() 返回的对象, 内存地址是相同的 单例设计模式的应用场景 音乐播放 对象 回收站 对象 打印机 对象 …… 02. __new__ 方法 使用 类名() 创建对象时, Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间 __new__ 是一个 由 object 基类提供的 内置的静态方法 ,主要作用有两个: 1) 在内存中为对象 分配空间 2) 返回 对象的引用 Python 的解释器获得对象的 引用 后,将引用作为 第一个参数 ,传递给 __init__ 方法 重写 __new__ 方法 的代码非常固定! 重写 __new__ 方法 一定要 return super().__new__(cls) 否则 Python 的解释器 得不到 分配了空间的 对象引用 , 就不会调用对象的初始化方法 注意: __new__ 是一个静态方法,在调用时需要 主动传递 cls 参数 示例代码 class MusicPlayer(object): def __new

day52 Django-ORM多表增删改查

情到浓时终转凉″ 提交于 2019-11-25 18:48:22
day52 Django-ORM多表增删改查 创建关系字段 class Author(models.Model): name=models.CharField(max_length=32) age=models.IntegerField() ad=models.OneToOneField(to="AuthorDetail",to_field="id",on_delete=models.CASCADE) # to_field="id" 可以不写,默认找主键 # to="AuthorDetail", to=可以不用写 # models.SET_NULL 置空 # on_delete=models.CASCADE 默认是级联删除,想做级联更新,直接去数据库修改表结构 class AuthorDetail(models.Model): birthday=models.DateField() telephone=models.CharField(max_length=16) addr=models.CharField(max_length=64) class Publish(models.Model): name=models.CharField(max_length=32) city=models.CharField(max_length=32) class Book(models