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