# 类是为了代码重用

class First:	#类
pass
#实例 = 类名()
obj = First()

# 类是一种产生实例的工厂
# 类和模块的差异在于,内存中特定的模块只有一个实例(所以我们要重载模块取得新代码),对于类而言,制作多少实例都可以。

class Person:
pass
Person.name = 'Bob'
Person.age = 18
print(Person.name) # >>Bob
print(Person.age) # >>18
# 再创建两个实例
x = Person()
y = Person()
print(x.name) # >>Bob
print(y.name) # >>Bob
# 实例本身没有属性,他们的属性熊类对象取出name属性。
y.name = 'Tom' # 修改属性
print(Person.name, x.name, y.name) #>>Bob Bob Tom
print(Person.__dict__.keys()) #>>dict_keys(['__module__', '__weakref__', '__doc__', 'age', 'name', '__dict__'])
print(x.__dict__.keys()) # >>dict_keys([])
print(y.__dict__.keys()) # >>dict_keys(['name'])

#上面的 name 和 age 属性通过哦赋值语句动态建立,方法(def)也可以完全独立地在任意类对象的外部创建。

def uppername(arg):    # 这里的参数可以随便定义,
print(arg.name.upper()) uppername(y) #>>TOM
Person.method = uppername
x.method()
y.method()
Person.method(x) class Person:
def __init__(self,name,job): # 运算符重载
self.name = name
self.job = job
def info(self):
return (self.name, self.job) p1 = Person('mel','trainer')
p2 = Person('vls','developer') print(p1.job,p2.info()) # trainer ('vls', 'developer')

最新文章

  1. JAVA List<> 合并去重
  2. debian 学习记录-4 -关于linux -2
  3. ubuntu進入dos界面命令 ubuntu進入圖形界面命令
  4. codevs 2152 滑雪
  5. NYOJ 214 最长上升子序列nlogn
  6. jquery选择器的简单使用
  7. redis 初识
  8. adb server is out of date. killing完美解决
  9. Ceres Solver 入门稍微多一点
  10. 分享一个用QT实现的Mjpeg-streamer客户端(简易版)
  11. spring 之 BeanDefinition & BeanDefinitionParser
  12. IdentityServer4:Endpoint
  13. 通过修改源码,免插件实现wordpress去除链接中的category
  14. 20155308《网络对抗》Exp4 恶意代码分析
  15. EZ 2018 04 21 NOIP2018 模拟赛(九)
  16. PLSQL Developer连接远程oracle配置
  17. 更改虚拟机UUID
  18. Gitlab汉化为中文版
  19. 20145204《Java程序设计》第3周学习总结
  20. 2-初步了解C#-类与对象

热门文章

  1. Python Web开发:使用Django框架创建HolleWorld项目
  2. 2018-2-13-C#-复制列表
  3. Nexus搭建Maven私服中央仓库
  4. Strcpy,strcpy使用注意
  5. canvas 绘制三次贝塞尔曲线
  6. bzoj 1001 原图最小割转化为对偶图最短路
  7. 向指定URL 发送POST请求的方法
  8. mybatis源码分析之01环境搭建
  9. HDU 6040 Hints of sd0061 —— 2017 Multi-University Training 1
  10. R中unlist函数的使用