博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初始面向对象
阅读量:5913 次
发布时间:2019-06-19

本文共 2865 字,大约阅读时间需要 9 分钟。

一.初始面向对象

class Person:     role = '人'   # 类的静态变量 是所有的对象共享的一个属性     def __init__(self):        pass     def attack(self):

1.类:一类事务,如人,电脑等

对象:一个具体的事务,如小明,小明的手机

2.定义一个类:

class Person(): 类名 Person 首字母要大写 ()可写可不写               在类中添加共用属性  role = '人'  类的静态变量 是所有的对象共享的一个属性 在调用时用 print(Person.role)

3.查看类中的名字:

3.1 print(Person.role) 类提供给我们的调用方式  可以进行修改 如Person.role = '中国人' 3.2 print(Person.__dict__) 类提供的存储方式 会将类中的所有名字和方法均显示出来 print(Person.__dict__['role'])

4.类只有两个作用:

4.1.使用类中的名字     查看类中的名字:1. 类名.变量名 # 可以修改变量的值                   2.类名.__dict__['变量名']   # 不能修改 4.2.创造对象  实例化对象     对象就是实例,一个实际的例子     对象 = 类名()  #obj1=person()

5.实例化:

1.obj1 = Person('alex','female',1,250)  # 实例化 先创造对象 再初始化 print(obj1.name,obj1.sex,obj1.aggr,obj1.hp) print(obj2.name,obj2.sex,obj2.aggr,obj2.hp) print(obj1.__dict__) 2.调用__init__方法 : 初始化方法     def __init__(self,name,sex,aggr,hp):  #方法 动态属性  内置的双下方法 self就是对象         self.name = name    self理解为等于一个空字典,self={} self.name中name为key值,等号右边的为value值         self.sex = sex    name,sex等均为属性         self.aggr = aggr         self.hp = hp

6.对象的具体:

print(obj1) #object at 0x000001B8F1378A90> print(obj2) #object at 0x000001B8F1378AC8>     1.内存地址的不一致     2.不同的对象 属性的值应该不同

7.类名(参数)

1.创造一个空对象 : self(即obj1) 2.调用__init__方法 : 初始化方法 3.把参数传给__init__方法 4.完成init方法中的代码 5.自动将self返回给实例化的地方 self就是对象

8.调用类中的方法 :

def attack(self):  # 自定义方法         print(self.name) 1.类名.方法名(对象) Person.attack(obj1) 2.对象名.方法名() obj1.attack()  def attack(self):self就是obj1

9.使用面向对象的步骤:

1.完成类 首先分析一下角色和类 类里面有哪些属性 init方法 再分析这个类中能有哪些行为 定义为方法 2.实例化 传参数获取实例化之后的对象     1.首先创造对象,     2.执行init方法 3.对象的调用:使用对象调用对象属性和类中的方法 对象名的作用:     1.使用变量 对象名.属性名 obj1.name     2.调用方法 对象名.方法名() obj1.attack() 实例:人狗大战
class Person:    # 类名 Person    role = '人'  # 类的静态变量 是所有的对象共享的一个属性    def __init__(self,name,sex,aggr,hp):  #方法 动态属性  内置的双下方法        self.name = name    # 对象属性 实例属性        self.sex = sex        self.aggr = aggr        self.hp = hp    def attack(self,dog):  # 自定义方法        print('%s打了%s'%(self.name,dog.name))        dog.hp -= self.aggrclass Dog:    def __init__(self,name,kind,aggr,hp):        self.name = name   # 对象属性        self.kind = kind        self.aggr = aggr        self.hp = hp    def bite(self,person):        print('%s咬了%s'%(self.name,person.name))        person.hp -= self.aggrhei = Dog('小黑','teddy',260,10000)  # 实例化: 先创造对象 再初始化alex = Person('alex','female',1,250)  # 实例化egon = Person('egon','male',2,500)  # 实例化alex.attack(hei)   # Person.attack(alex,hei)egon.attack(hei)   # Person.attack(alex,hei) 调用类中的方法print(hei.hp)hei.bite(alex)print(alex.hp)
View Code
根据半径求圆面积
from math import piclass Circle:    def __init__(self,r):        self.r=r    def area(self):       return self.r**2*pi    def  perimeter(self):       return self.r*2*picircle=Circle(5)print(circle.area())print(circle. perimeter())
View Code

 

 
 
 
 
 
 
 
 

 

转载于:https://www.cnblogs.com/zgf-666/p/8541162.html

你可能感兴趣的文章
axios 拦截 , 页面跳转, token 验证(自己摸索了一天搞出来的)
查看>>
如何将经纬度利用Google Map API显示C# VS2005 Sample Code
查看>>
开发人员可以提高效率的chrome插件推荐
查看>>
性能测试分享:性能测试工具开发的案例分享(下)
查看>>
linux sar命令详解
查看>>
通过Gearman实现MySQL到Redis的数据复制
查看>>
eclipse 自动为getter和setter添加注释
查看>>
我的友情链接
查看>>
DataSet
查看>>
XMLHttpRequest - 原始AJAX初步
查看>>
有序的双链表
查看>>
mvn package时设置了maven.test.skip=true依旧执行单元测试
查看>>
Java NIO中的通道Channel(二)分散/聚集 Scatter/Gather
查看>>
Palindrome Partitioning
查看>>
四则运算
查看>>
Qt5 for Android: incompatible ABI
查看>>
zookeeper学习
查看>>
class类名的管理
查看>>
LeetCode:Rectangle Area
查看>>
文本查询
查看>>