类的结构 实例 使用面向对象开发时,第一步是设计类: 当使用 类名() 创建对象时,会自动执行以下操作: 1.为对象在内存中分配空间--创建对象: 2.为对象的属性 设置初始值--初始化方法(init); 对象创建后,内存中就有了一个对象的实实在在的存在--实例: 因此通常也会把: 1.创建出来的对象叫做类的实例: 2.创建对象的动作叫实例化: 3.对象的属性叫实例属性: 4.对象调用的方法叫实例方法: 在程序执行时: 1.对象各自拥有自己的实例属性: 2.调用对象方法,可以通过self. 访问
例一:BMI指数(bmi是计算而来的,# 但很明显它听起来像是一个属性而非方法,如果我们将其做成一个属性,更便于理解)## 成人的BMI数值:# 过轻:低于18.5# 正常:18.5-23.9# 过重:24-27# 肥胖:28-32# 非常肥胖, 高于32# 体质指数(BMI)=体重(kg)÷身高^2(m)# EX:70kg÷(1.75×1.75)=22.86 # 1,初识属性:# class A:# def __init__(self, name, weight, height):# self
类属性 定义在类里面,方法外面的属性,一般属于这个类,如下面的 num 就是类属性: class Test: num = 0 类属性用 实例.类属性 或者 类.类属性 都可以访问, 如 a = Test() 用 a.num 可以访问 ,但是如果这个实例有一个实例属性 self.num 那么这样访问的其实是 self.num , 所以一般用 类.属性 即这样 Test.num 访问 类方法, 类方法是属于这个类的方法,定义方式为 前面加上装饰器 @classmethod 且第一个参数传递的
一.静态属性 静态属性说的就是数据属性 1.定义一个房间的类,求下这个房间的面积 class Room: def __init__(self,name,ower,width,length,heigh): self.Name=name self.Ower=ower self.Width=width self.Length=length self.Heigh=heigh r1=Room("厕所","北爷",2,2,20000)#实例化出来一个实例r1,实例化的过程就是执
一.属性:将一个方法,伪装成一个属性,在代码的级别上没有本质的提升,但是可以让其看起来更合理 property:类似于bmi这种,看起来像名词,实际是需要计算的(动词),或者遇到周长或者面积这种词的时候,需要使用property装饰器来对其进行伪装 例如: class Person: def __init__(self,name,weight,height): self.name = name self.weight = weight self.height = height def bmi(s
一:类对象 前面讲的类定义格式中,“class 类名:”.实际上,当解释器执行class 语句时, 就会创建一个类对象. [操作] #测试类对象的生成 class Student: pass #空语句 print(type(Student)) print(id(Student)) print(Student) s1 = Student() print(s1) Stu2 = Student s2 = Stu2() print(Stu2) print(s2) 运行结果: <class 'type'>
本章内容 属性方法 类方法 静态方法 属性方法 属性方法就是通过使用装饰器 @property , 将一个方法变成一个静态属性 , 于是我们就可以通过访问属性 , 来或得一个方法的返回值 1 from urllib.request import urlopen 2 class Web_page: 3 def __init__(self, url): 4 self.url = url 5 self.__content = None 6 # 将content方法变成属性 7 @property 8
类方法 什么是类方法? 类方法是通过类名直接调用的方法,类方法至少有一个参数,第一个参数默认cls(也就是类名),当然对象名也可以调用类方法,但一般不这么用. class A: name = "barry" def func1(self): print(self) @classmethod # 类方法 def func2(cls): print(cls) A.func2() # <class '__main__.A'> a = A() a.func1() # <__m
进击のpython 面向对象进阶-类方法 classmethod 类方法 python的类方法是通过@classmethod装饰器实现的 类方法和普通的方法的区别是 类方法只能访问类变量,不能访问实例变量 class Dog(object): def __init__(self, name): self.name = name @classmethod def eat(self): print("%s is eating" % self.name) d = Dog("Mjj&
前 言 OOP 学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1 PHP中的抽象类与抽象方法 1.什么是抽象方法? 没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法. abstract function say(); // 抽象方法 2.什么是抽象类?