类
class class_name(object):
def __init__(self):
print('Hello')
if __name__="__main__":
a=(class_name)
对象
- 创建对象:
不需要初始值:对象名=类名()
需要初始值:对象名=类名(参数列表)
class Num(object):
def __init__(self):
pass
def jdt(self):
for i in range(1,101):
print('#'*(i),'%d %%'%i)
if __name__=="__main__":
a=Num()
a.jdt()
import time
class Num(object):
def __init__(self):
self.count=1
def jdt(self):
for i in range(0,100):
time.sleep(0.5)
if i%5==0:
res='#'*self.count
print('%s %d%%'%(res,(i+1)))
self.count+=1
if __name__=="__main__":
a=Num()
a.jdt()
访问可见性问题
- 私有变量:当可以直接访问对象的属性时, 可能会被输入不合法的数据, 私有变量可以阻止从外部直接访问对象
格式:__变量名
给私有变量设置值:set_变量名
获取私有变量的值:get_变量名
class class_name:
def __init__(self):
self.__a=1000
def A(self):
print(self.__a)
print(self.__B())
def __B(self):
print('Hello B')
if __name__=="__main__":
name=class_name()
name.A()
@property装饰器
class Num(object):
def __init__(self):
self.__a=1000
@property
def a(self):
return self.__a
if __name__=="__main__":
name=Num()
print(name.a)
继承
单继承
- 子类在继承的时候,在定义类时,小括号()中为父类的名字
- 父类的属性、方法,会被继承给子类
- 私有的属性,不能通过对象直接访问,但是可以通过公有方法访问
- 私有的方法,不能通过对象直接访问
- 私有的属性、方法,不会被子类继承,也不能被访问
- 一般情况下,私有的属性、方法都是都是不对外公布的,往往用来做内部的事情,起到安全的作用
class A(object):
def __init__(self,a1):
self.a=1000
self.a1=a1
def A1(self):
print('A1')
class B(A):
def __init__(self,a1):
A.__init__(self,a1)
pass
def B1(self):
print(self.a1)
if __name__=="__main__":
b=B('Num')
b.B1()