类的命名方法
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:python3python3.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输出十六进制