Python类的基础使用


>>> class class_demo(object):#定义一个空类,继承自python中最大的基类object
...     pass
... 
>>> c = class_demo()
>>> print(type(c))
<class '__main__.class_demo'>
>>> c.name = 'root' #绑定变量
>>> print(c.name)
root
>>> c.pwd = 'root'  #绑定变量
>>> print(c.pwd)
root

init方法

相当与c++中的构造函数,对类进行初始化工作,在对象创建时被调用

>>> class user_info(object):
...     def __init__(self, name, pwd, salary, money):
...         self.name = name
...         self.pwd = pwd
...         self.salary = salary
...         self.money = money
... 

>>> user = user_info('root', 'root', 5000, 500)
>>> user.name
'root'
>>> user.pwd
'root'
>>> user.salary
5000
>>> user.money
500

自定义类方法

>>> class user_info(object):
...     def __init__(self, name, pwd, salary, money):
...         self.name = name
...         self.pwd = pwd
...         self.salary = salary
...         self.money = money
... 
...     def print(self):
...         print("Name:%s Salary:%d Money:%d" % (self.name, self.salary, self.money))
... 
>>> user = user_info('root', 'root', 5000, 500)
>>> user.name
'root'
>>> user.pwd
'root'
>>> user.salary
5000
>>> user.money
500
>>> user.print()
Name:root Salary:5000 Money:500

类的访问控制

在类的变量前边加上两个下划线 表示该变量只在类的内部访问

>>> class user_info(object):
...     def __init__(self, name, pwd, salary, money):
...         self.name = name
...         self.__pwd = pwd
...         self.salary = salary
...         self.__money = money
... 
...     def print(self):
...         print("Name:%s Salary:%d Money:%d" % (self.name, self.salary, self.__money))
... 
>>> user = user_info('root', 'root', 5000, 500)
>>> user.name
'root'
>>> user.__pwd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'user_info' object has no attribute '__pwd'
>>> user.salary
5000
>>> user.__money
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'user_info' object has no attribute '__money'
>>> user.print()
Name:root Salary:5000 Money:500

#python中的权限访问做的并不是特别严谨,需要程序员自觉遵守,可以通过下面这种方式访问到
#可以提供get 和set 这些接口来访问
>>> user._user_info__pwd
'root'
>>> user._user_info__money
500

类的继承

python中最大的基类 object

>>> # animal类继承自object
... class animal(object):
...     def eat(self):
...         print("Animal eat...")
... 
...     pass
... 
... # pig类继承自animal, 也拥有object的东西 
>>> class pig(animal):
...     pass
... 
... # dog类继承自animal, 也拥有object的东西
>>> class dog(animal):
...     # 重写eat
...     def eat(self):
...         print("Dog eat ")
...     pass
... 
>>> def main():
...     xx = pig()
...     xx.eat()
...     zz = dog()
...     zz.eat()
... 
>>> main()
Animal eat...
Dog eat
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值