https://www.cnblogs.com/bigberg/p/7252349.html  #类方法,静态方法, 属性方法。

类有两种作用:属性引用 和实例化.
属性引用(类名.属性)
class person()
  role=“perosn” 人的角色属性都是人
  def walk(self):
    print ("person is walking")
print (Person.role) #查看人的role属性
print (person.walk) #引用人的走路方法,注意这里不是在调用. 实例化: 类名加 括号就是实例化,会自动触发__init__函数.的运行
可以用他来为每个实例指定自己的特征.
class Person:
role ='person' #人的角色属性都是人
def __init__(self,name ):
self.name =name
def walk(self):
print("person is walking")
print(Person.role)# 查看人的role属性
print(Person.walk)#引用人的走路方法,注意这里不是在调用. 打印结果<function Person.walk at 0x028CEA08>
print(person.__dirt__)类的字典属性:
{'__module__': '__main__', 'role': 'person', '__init__': <function Person.__init__ at 0x0021D6A8>,
'walk': <function Person.walk at 0x007EEA08>, '__dict__': <attribute '__dict__' of 'Person' objects>,
'__weakref__': <attribute '__weakref__' of 'Person' objects>, '__doc__': None}
对象的作用:属性的引用
一:我们定义的类的属性到底存到哪里了?有两种方式查看
dir(类名):查出的是一个名字列表
类名.__dict__:查出的是一个字典,key为属性名,value为属性值 二:特殊的类属性
类名.__name__# 类的名字(字符串)
类名.__doc__# 类的文档字符串
类名.__base__# 类的第一个父类(在讲继承时会讲)
类名.__bases__# 类所有父类构成的元组(在讲继承时会讲)
类名.__dict__# 类的字典属性
类名.__module__# 类定义所在的模块
类名.__class__# 实例对应的类(仅新式类中)


人打狗,狗咬人的题目

class 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 =dog.hp- self.aggr
class 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.aggr
hei =Dog('小黑','teddy',260,10000) #实例化过程.
alex =Person('alex','female',1,250 )
alex.attack(hei)#Person.attack(alex,hei)
print(hei.hp) #
hei.bite(alex)
print(alex.hp) 通过面向对象求圆的面积和周长
from math import pi
class Cirle :
def __init__(self,r):
self.r = r
def area(self):
return pi*self.r**2
def zhouchang(self):
return 2*pi*self.r c1 = Cirle(5)
print(c1.r)
print(c1.area())
print(c1.zhouchang())
 答案:

5
78.53981633974483
31.41592653589793


圆周的问题.
# from math import pi
# class Cirle :
# def __init__(self,r):
# self.r = r
# def area(self):
# return pi*self.r**2
# def zhouchang(self):
# return 2*pi*self.r
#
# c1 = Cirle(5)
# print(c1.r)
# print(c1.area())
# print(c1.zhouchang()) 爬山砍柴题目. class Person :
def __init__(self,name,sex,age):
self.name =name
self.sex =sex
self.age =age
def clim(self):
print('%s,%s,%s岁,去爬山'%(self.name,self.sex,self.age))
def drive(self):
print('%s,%s,%s岁,开车去东北'%(self.name,self.sex,self.age))
def massage(self):
print('%s,%s,%s岁,massage'%(self.name,self.sex,self.age))
xiaoming = Person("小明",'男','10岁')
xiaoming.drive()
xiaoming.clim()
xiaoming.massage() laozhang = Person('老张','男','90岁')
laozhang.drive()
laozhang.clim()
laozhang.massage() laowang =Person('老王','男','70岁')
laowang.drive()
laowang.clim()
laowang.massage() 正方形的面积

class squre:
    def __init__(self,line):
self.line = line def mianji(self):
return self.line**2 obj=squre(6)
print(obj.line)
print(obj.mianji())

Day 22 面向对象知识.的更多相关文章

  1. javascript面向对象知识

    <html> <head> <script></script> </head> <body> <!-- <scrip ...

  2. python全栈开发 * 22 面向对象 知识点汇总 * 180703

    22 面向对象 -----属性,类方法,静态方法,反射一.属性1.属性的定义:将方法伪装成属性,虽然在代码层面上没有任何高深之处,但让其看起来更合理. (类似于属性的方法)class Person: ...

  3. C#面向对象(四):其他面向对象知识

    前文链接: C#面向对象(一):明确几个简单的概念作为开胃菜 C#面向对象(二):封装和继承 C#面向对象(三):多态 今天是这个系列的收尾文章了,来谈谈其他面向对象知识. 1.嵌套类 1.1概念 在 ...

  4. 前端学习:JS面向对象知识学习(图解)

    前端学习:JS面向对象知识学习(图解) 前端学习:JS(面向对象)代码笔记 JS面向对象图解知识全览 创建类和对象 方式1:使用Object()函数 方式2:使用自变量 方式3:使用工厂函数 创建多个 ...

  5. 面向对象相关概念与在python中的面向对象知识(魔法方法+反射+元类+鸭子类型)

    面向对象知识 封装 封装的原理是,其成员变量代表对象的属性,方法代表这个对象的动作真正的封装是,经过深入的思考,做出良好的抽象(设计属性时用到),给出“完整且最小”的接口,并使得内部细节可以对外透明( ...

  6. day 22 面向对象的基础

    面向对象: 1.简述编写和执行类中的方法的流程 class Foo: #类的编写 def func(): print("我爱你") obj = Foo() #类的调用和执行 obj ...

  7. java面向对象知识整理(一)

    1.面向对象思想 概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对像,强调具备功能的对象. 特点:(1)符合人们思考习惯的一种思想. (2)将复杂的事情简单化 ...

  8. JAVA_SE基础——22.面向对象的概念

    我写博客是为了提升自己和为了进入黑马程序员学习,还有分享些自己的心得给大家,希望能帮助大家学习JAVA. 我是自学的,如果写的有错误或者能更好的修改的请提出. 在这里我先引用下<think in ...

  9. day 22 面向对象 类与对象 名称空间操作

    一.面向对象 1.面向过程编程 核心是"过程"二字,过程指的是解决问题的步骤,即先干什么再干什么 基于该思想编写程序就好比在编写一条流水线,是一种机械式的思维方式. 优点:复杂的问 ...

随机推荐

  1. php在线支付流程

    1.企业与银行的两种接入方式: (1).企业直接与银行对接. 优点:直接与银行进行财务结算,资金安全,适合资金流较大企业.         缺点:开发和维护工作量较大,分别与每家银行签订合同,每年需交 ...

  2. JSF控件的immediate属性和页面生命周期

    JSF中的控件基本都有immediate属性,对于这个属性的使用总结如下,更详细内容可参考Oracle官方文档. 1,为了更好的理解immediate属性,先看一下JSF页面的生命周期: JSF页面的 ...

  3. CodeSmith生成SQL Server视图的实体类脚本/对应的生成模板

    C#生成sql视图的实体类 using System;using System.Text;using CodeSmith.Engine;using SchemaExplorer;using Syste ...

  4. MacOs执行SQL出错(mysql)

    上次修改过root密码之后,刚启动,执行sql就报错了. 错误是: Reset MySQL root password using ALTER USER statement after install ...

  5. geoserver笔记

    geoserver中只支持shp 的数据的发布,也就是.shp的数据.其他的如mapgis的数据则需要转成.shp的格式 要发布地图数据为WMS服务,首先得建立工作空间(也可以使用现有的工作空间),然 ...

  6. python生成验证码,文字转换为图片-乾颐堂

    在58或者赶集等一些网站上经常看到手机号是图片格式,或者一些网站的验证码.这些都是动态生成的,今天我们来看一下如何用python把文字生成图片.其实今天主要借助pygame的图像渲染模块,这样比较简单 ...

  7. UI设计行业中的“延禧攻略”,教你从青铜变王者

    最近一直在追<延禧攻略>,女主魏璎珞敢爱敢恨,有仇必报的性格吸引不少人,她从低贱的秀坊小宫女步步为营,最终成为皇帝最宠爱的令妃呼风唤雨.尔虞我诈的后宫,想要打怪升级光有颜值是万万不够的,更 ...

  8. mupdf编译snprintf冲突问题

    mupdf-1.6-source\thirdparty\jbig2dec\config_win32.h //#  define snprintf _snprintf

  9. <td> 行高多层设置的问题

    在一个table中,设置了class,并且对应的样式设置了td的高度时,在其嵌套的table中的td高度不能设置大于父table的td的高度. 只有一种方法可以设置,如下: <table wid ...

  10. 使用delphi 开发多层应用(二十二)使用kbmMW 的认证管理器

    从kbmmw 4.4 开始,增加了认证管理器,这个比原来的简单认证提供了更多的功能.细化了很多权限操作. 今天对这一块做个介绍. 要做一个认证管理,大概分为以下5步: 1.  定义你要保护的资源,一般 ...