Python中的类和对象

1 类:具有相同属性和方法的对象的集合;

 对象:万物皆对象;
2..class 类名:
属性
方法
3.class Preson:
 def eat(self):
      print("正在吃饭");
  def sleep(self):
      print("正在睡觉")
4.类的命名

首字母大写

    以大小写分割单词

    不使用下划线“_”
5.创建对象

属性写在类外的情况,就是通过对象.属性,对象.方法()的方法调用

对象的三要素:属性(对象是什么)、方法(对象能做什么)、事件(对象如何响应)

相互关系:类是对象的抽象,对象是类的实例,类是一种抽象事物的分类,对象是一种实例;

6.属性相对于类来说属于全局,每个方法都可以调用;

4.属性分归属 类属性 对象属性

对象属性的两种创建方式:

self 对象的载体

def int(self,name,age):
self.name=name;
self,age=age;

创建对象属性

  1. 对象名.属性 赋值的形式
  1. init(self,name,age) 在创建类的实例的时候,回自动调用这个方法,一般用户对实例属性初始化;

class Person:
def init(self,name,age):
self.name=name;
self.age=age;
print("执行init时就被调用了")
p=Person("tom",22)
print(p.name)
print(p.age)

执行init时就被调用了
tom
22

  1. new(cls,agrs,*kwargs)

    在类调用init方法时,new方法决定是否要用init方法,因为new可以调用其他类的方法,或者返回别的对象来

作为本类的实例;

new()方法的特性:

new()方法时在类准备将自身实例化时调用;

new()方法始终都是类的静态方法,即使没有被加上静态方法装饰器;

class A(object):
def init(self,args,kwargs):
print( "init &&&& %s" % self.class)
def new(cls,
args,kwargs):
print( "new &&&& %s" % cls)
return object.new(cls,
args,
*kwargs)
a=A()

new &&&& <class 'main.A'>
init &&&& <class 'main.A'>

8.对象属性 私有和共有

类属性 公有和私有

 对属性进行私有化 __属性,外部访问不到,也不可对属性进行赋值

class Person(object):
def init(self, name):
self.name = name
self._title = 'Mr'
self.__job = 'Student'
p = Person('Bob')
print (p.name)
Bob
print (p._title)
Mr
print (p.__job)

  1. 封装 2步

(1)把属性变成私有

(2)用set()和get()函数写一个方法

class Person:
def init(self,name,age):
self.name=name
self.__age=age
def getAge(self):
return self.__age
def setAge(self, age):
if age<0 or age>100:
self.__age=18;
else:
self.__age=age
def showtime(self):
print("姓名:{}".format())
p=Person("as",20);
print(p.getAge())
p.setAge(10)
print(p.getAge())

20
10
11.def str() 一个类的实例变成str,需要用特殊方法str()

class Person(object):
def init(self, name, gender):
self.name = name
self.gender = gender

p = Person('Bob', 'male')
print (p)

<main.Person object at 0x02171270>

class Person(object):
def init(self, name, gender):
self.name = name
self.gender = gender
def str(self):
return '(Person: %s, %s)' % (self.name, self.gender)
p = Person('Bob', 'male')
print (p)

(Person: Bob, male)

12.公有方法和私有方法;

私有方法在方法前加两个下划线:def __text():
  1. 自动销毁方法:del(): 当对象没有引用的时候,或程序结束的时候,程序自动调用del()

class Person:
def init(self,name,age):
self.name=name
self.age=age
def del(self):
print("对象张三被销毁")
zhangsan=Person("张三",20)
zhangsan.del()

对象张三被销毁
对象张三被销毁

14.测试对象有多少次引用

import sys

t=T()

sys.getrefcount(t)返回2  从2开始

import sys
class Person:
def init(self,name,age):
self.name=name;
self.age=age;
zhangsan=Person("张三",20)
print(sys.getrefcount(zhangsan))

2

15.访问私有属性可以通过 对象.类名_属性访问到(不建议用这个方法)

16.id()函数 查看对象的内存地址;

17.类属性:属于类成员,对象共有的;

类方法:cls 表明是 类

              在方法上添加 @classmethod装饰器

              def class_method(cls):

              可以通过类方法调用类属性,也可以通过对象调用类属性;

修改类属性的2种方式:

              1.类名.类属性=... 
              2.实例对象__class__类属性=...

静态方法:前面加@staticmethod,静态方法可以加参数,与类和对象都没有关系,也可以通过类和对象调用;

class Person:
def init(self,name,age):
self.name=name;
self.age=age;

def showInfo(self):
    print("姓名{0} 年龄{1}".format(self.name, self.age))

@staticmethod
def goHome(self,name, by):
    print(name, "回家...", by)
  1. dir() dir 展示一个类/对象的内部属性和函数;

dir(zhangsan);
zhangsan.dir()

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容