python学习笔记--类(一)

# 类是为了代码重用

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')
原文地址:https://www.cnblogs.com/gaoyuanzhi/p/8253058.html