一.课前练习:
- 用面向对象的方式让用户输入用户名和密码。
- 需求:密码的长度不少于六位,密码不可见。
-
1 class User: 2 3 def __init__(self,pw): 4 if len(pw) >= 6: 5 self.__password = pw 6 else: 7 print(“密码:%s不符合规定” % pw) 8 9 def __str__(self): 10 self.__say_hello( ): 11 return“密码%s” % self.__password 12 13 def __say_hello(self): 14 print(self.__password) 15 16 def get_password(self): 17 return self.__password 18 19 u1 = User(“123456”) 20 print(u1)
结论:
- 类里面的__passwd;__say_hello;属性不允许从类的子层级以外调用,但可以在里面调用。
- 以上的这些不能从外部调用的属性,为隐藏属性,称作私有属性,英文名private。
- 可以用来从类的外部调用的属性称为公有属性,即public。
- 属性和方法一样,两个下划线开头的均为私有化,否则为公有化。
- 名称默认为公有化,加上“__”即私有化。
二.__del__(self)方法:
- 该方法删除的是对象与类之间的引用。
- 当引用都被删除,立刻被内存回收掉。
- 当仍有未被删除的引用,内存会在最后时刻回收掉。