03 python 对象笔记

类的命名方法

1.使用大驼峰命名法:每一个单词的首字母大写(第一个的也要)
2.单词之间不需要下划线

对象的内置函数和属性

1.使用dir()函数来获取对象的内置方法和属性。返回值是一个列表。
2.返回中的__方法名__代表该对象的内置方法和属性

类的定义

class 类名:
#与java不同的是,java 的类名后面有括号,python的没有

类中的方法

1.类中的方法默认参数为self,即类自身
2.类汇中的方法若想访问类中的变量,使用self.变量名 即可(java中是this)

通过对象给自身添加新的属性
对象名.新属性=属性值
添加的属性不会再类中,不会影响到同类下的其它对象

类的构造方法-无参

def __init__(self):
#这里可以对初始化方法进行编辑,如
self.name = "tom"# 为这个类的每一个对象创建一个值为“tom”的属性

类的构造方法-有参

class Human:
    def __init__(self,new_name):
        self.name=new_name

对象的销毁方法__del__

对象在被销毁时(从内存中)会自动调用此对象,若不适用del <对象名>方法删除对象,则对象将在程序执行完后被销毁

class Human:
    def __del__(self):
        print("%s对象被销毁了!" % self.name) 

对象的__str__方法

类似于java中的toString方法,__str__方法在python中起到同样的作用
默认的__str__方法返回’包含该对象所在的类以及在内存中的地址‘的字符串
可在类中对此方法进行修改,但必须返回一个字符串
 def __str__(self):
        return "我的名字是%s" % self.name的

类的私有属性和私有方法

类的私有属性和方法不能被调用,它仅在类的内部被使用。

class Women:
    def __init__(self,name,age):
        self.name=name
        self.__age=age # 私有属性和方法的定义方法就是在名称前加两个下划线

    def secret(self):
        print("%s的年龄是%d" % (self.name,self.__age))# 私有属性和方法可以在内部调用

xiaofang = Women("小芳",18)
xiaofang.secret()

  输出结果:

E:\python3\python3.exe F:/PycharmProjects/project3-class/xh_09_私有属性和方法.py
小芳的年龄是18

如果在外部尝试调用私有属性

age = xiaofang.__age

  则报错:

Traceback (most recent call last):
  File "F:/PycharmProjects/project3-class/xh_09_私有属性和方法.py", line 11, in <module>
    age = xiaofang.__age
AttributeError: 'Women' object has no attribute '__age'

  私有方法同理不再累述。

如何强制调用私有方法?

使用 对象._类名__属性或方法名 可以强制调用方法,但开发中不适用此方法,强烈不推荐。

age = xiaofang._Women__age

  

杂七杂八

%d输出十进制数字
%x输出十六进制

posted @ 2019-10-21 14:09  Scorpicat  阅读(159)  评论(0编辑  收藏  举报