python类

Python 类

…衆ロ難τιáo~ 提交于 2019-12-05 05:31:32
1.创建类 1 class Person: 2 def setName(self.name): 3 self.name = name 4 5 def getName(self): 6 return self.name 7 8 def greet(self): 9 print("Hello, world! I'm %s." % self.name) 这里创建了Person类,并在类中定义了三个方法:setName(),getName(),greet() 在调用Person对象foo的setName()和greet()函数时,foo自动将自己作为第一个参数传入函数中,因此形象地命名为self 通过self,成员方法得以访问他们要对其特性进行操作的对象本身 2.特性、函数和方法 self参数正是方法和函数的区别,方法(绑定方法)将它们的第一个参数绑定到所属的实例上,因此这个参数可以不必提供,如果将特性绑定到一个普通函数上,这样就不会有特殊的self参数了 self参数并不取决于调用方法的方式 最后一个方法的调用中,变量birdsong引用绑定方法bird.sing上,这还是对self参数的访问,也就是说,它仍旧绑定到类的相同实例上 私有化 默认情况下,程序可以从外部访问一个对象的特性。但是应该尽量避免从外部直接访问特性,可以使用私有特性,这是外部对象无法访问,但通过访问器能够访问的特性

python --- 类的继承

混江龙づ霸主 提交于 2019-12-05 02:32:31
1、 class Animal(): def __init__(self,type,voice): self.type = type self.voice = voice def animal_type(self): print('这种动物是,{0}'.format(self.type)) def animal_voice(self): print('{0}的声音是{1}!'.format(self.type, self.voice)) class Dog(Animal): #类的继承,默认继承object。子类默认继承父类的属性和方法;继承多个父类,如果有重名的函数,先写哪个,继承哪个; # 如果多个父类初始化函数参数不一致,当调用涉及不一样参数的属性、方法时,会报错;可以重写子类的init方法 def animal_voice(self): #当子类与父类重名时,是重写该方法 print('函数的重写') def dog_foot(self): #子类自己的函数 print('{0}有四肢'.format(self.type)) animal = Animal('狗','汪汪汪') animal.animal_type() animal.animal_voice() dog = Dog('二哈','wangwangwang') dog.animal_type() dog

python类的学习笔记

限于喜欢 提交于 2019-12-04 23:33:06
python中一切皆对象,类型的本质就是类。 在python中,用变量表示特征,用函数表示技能,因而具有相同特征和技能的一类事物就是‘类’,对象是则是这一类事物中具体的一个。 声明函数的方法: def functionName(args):   '函数文档字符串'   函数体 声明类的方法: ''' class类名: '类的文档字符串' 类体 ''' # 创建一个类 class Data: pass # 创建一个描述人的类 class Person: # 定义一个人类 role = 'person' # 角色属性都是人 def work(self): # 人都会走路,是一种方法,也叫动态属性 print("person is walking...") 类的两种作用和:属性引用和实例化 属性引用: class Person: #定义一个人类 role = 'person' #人的角色属性都是人 def walk(self): #人都可以走路,也就是有一个走路方法 print("person is walking...") print(Person.role) #查看人的role属性 print(Person.walk) #引用人的走路方法,注意,这里不是在调用 实列化:类名加括号就是 实例化,会自动触发__init__函数的运行,可以用它来为每一个实例定制自己的特征 class

python-类

跟風遠走 提交于 2019-12-04 18:01:52
class lei: def __init__(self,name,age):#初始化函数 self.name=name self.age=age self._sex='女'#初始化函数中self后面的是实例化对象属性,加下划线代表是私有的,不应该访问 def get_name(self):#自定义函数,self指向实例本身 return self.name;p1=lei('zhangsan',12)p2=lei('lisi',13)print(p1.get_name())print(p2.get_name())class Student(lei):#继承 def get_score(self): return 100 pass #pass在python中代表什么都不做s=Student('liu',24)print(s.get_name())print(s.get_score()) 来源: https://www.cnblogs.com/testerling/p/11876622.html

Python面向对象 | 类方法 classmethod

让人想犯罪 __ 提交于 2019-12-04 14:34:30
类方法:必须通过类的调用,而且此方法的意义:就是对类里面的变量或者方法进行修改添加。 例一个商店,店庆全场八折,代码怎么写呢? class Goods: __discount = 0.8 # 折扣 def __init__(self,name,origin_price): self.name = name self.__price = origin_price @property def price(self): return self.__price * Goods.__discount apple = Goods('apple',5) banana = Goods('banana',8) print(apple.price) print(banana.price) ''' 执行输出: 4.0 6.4 ''' 现在折扣变了,店庆结束,恢复原价。 如何修改__discount变量呢 ?不能这么写。 Goods._Goods__discount = 1 怎么办呢? 定义一个方法,修改属性 class Goods: __discount = 0.8 def __init__(self,name,origin_price): self.name = name self.__price = origin_price @property def price(self): return

Python面向对象 | 类的成员

安稳与你 提交于 2019-12-04 14:27:07
一. 细分类的组成成员 之前咱们讲过类大致分两块区域,静态字段部分和方法部分。 每个区域详细划分又可以分为: class A: company = '阿里巴巴' # 静态变量(静态字段) __tel = '400xxxxx' # 私有静态变量(私有静态字段) def __init__(self,name,age): #特殊方法(初始化方法) self.name = name # 对象属性(普通字段) self.__age = age # 私有对象属性(私有普通字段) def func1(self): # 普通方法 pass def __func(self): #私有方法 print(666) @classmethod # 类方法 def class_func(cls): """ 定义类方法,至少有一个cls参数 """ print('类方法') @staticmethod #静态方法 def static_func(): """ 定义静态方法 ,无默认参数""" print('静态方法') @property # 属性 def prop(self): pass 二. 类的私有成员 对于每一个类的成员而言都有两种形式:   公有成员 ,在任何地方都能访问   私有成员 ,只有在类的内部才能方法 私有成员和公有成员的访问限制不同 1. 属性   静态属性   对象属性 静态字段

python基础(26):类的成员(字段、方法、属性)

这一生的挚爱 提交于 2019-12-04 11:40:06
1. 字段 字段:包括普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同。 普通字段属于 对象 静态字段属于 类 字段的定义和使用: class Province: # 静态字段 country = '中国' def __init__(self, name): # 普通字段 self.name = name # 直接访问普通字段 obj = Province('河北省') print obj.name # 直接访问静态字段 Province.country 由上述代码可以看出普通字段需要通过对象来访问,静态字段通过类访问,在使用上可以看出普通字段和静态字段的归属是不同的。其在内容的存储方式类似如下图: 由上图可知: 静态字段在内存中只保存一份 普通字段在每个对象中都要保存一份 应用场景: 通过类创建对象时,如果每个对象都具有相同的字段,那么就使用静态字段 2. 方法 方法包括:普通方法、静态方法和类方法,三种方法在 内存中都归属于类 ,区别在于调用方式不同。 普通方法:由 对象 调用;至少一个 self 参数;执行普通方法时,自动将调用该方法的 对象 赋值给 self ; 类方法:由 类 调用; 至少一个 cls 参数;执行类方法时,自动将调用该方法的 类 复制给 cls ; 静态方法:由 类 调用;无默认参数。 方法的定义和使用: class

python 类的成员

安稳与你 提交于 2019-12-04 08:23:27
1. @staticmethod 静态方法 class People(object): def __init__(self,name): self.name = name @staticmethod # 静态方法,不能访问实例变量和类变量,和类实际没啥关系,除了把它放到类里面,然后通过类来调用它。 def getname(self,sex): # 虽然有self,但是需要调用的时候手动传入实例。 print('%s is a %s' %(self.name,sex)) people = People('LaoWang') people.getname(people,'man') # 想要访问实例变量,只能手动传递实例进入!如果写成:people.getname('man')会报错。 2. classmethod 类方法 class People(object): age = 30 def __init__(self,name): self.name = name @staticmethod # 静态方法,不能访问实例变量和类变量,和类实际没啥关系,除了把它放到类里面,然后通过类来调用它。 def getname(self,sex): # 虽然有self,但是需要调用的时候手动传入实例。 print('%s is a %s' %(self.name,sex))

python 属性,类方法和静态方法

不打扰是莪最后的温柔 提交于 2019-12-04 07:14:46
一. 属性 属性: 将一个方法, 伪装成一个属性, 在代码的级别上没有本质的提升, 但是让其看起来很合理. @property 属性 @属性名.setter # 设置(修改) @属性名.deleter # 在内部删除二. 类方法 @classmethod # 类方法 类方法: 通过类名调用的方法, 类方法中第一个参数约定俗称cls, python自动将类名(类空间)传给cls. 只能有类名调用(对象调用, 传给cls参数的也是该对象的所属类). 类方法的应用场景: 1. 无需对象参与. 2. 对类中的静态变量进行修改, 用类方法 3. (1)在父类中类方法得到子类的类空间, 为所欲为, (2)继承中, 父类得到子类的类空间子类类名调用父类的类方法, 将我子类的类名传给父类, 这个方法中能得到子类的任何东西, 还能修改三. 静态方法 @staticmethod 静态方法的优点: 1. 代码块, 清晰 2. 复用性1. 属性 # 属性的初识 class Food: def __init__(self,name,apple,banana): self.name = name self.__apple = apple self.__banana = banana @property # 装饰器函数,内置函数, def func(self): return "喜欢吃 %s 和 %s" %

python类和实例

我怕爱的太早我们不能终老 提交于 2019-12-04 04:07:57
1、创建一个狗类,初始化有名字和年龄,创建两个方法蹲下和打滚,然后分别调用这两个狗的属性和方法 class Dog(): def __init__(self,name,age): self.name =name self.age =age def dunxia(self): print(self.name.title() + " now dun xia !") def dagun(self): print(self.name.title() + " now da gun !") my_dog = Dog('xiao ji', 6) you_dog = Dog("da ji ",8) print("My dog's name is " + my_dog.name.title() + ".") print("My dog is " + str(my_dog.age) + " years old.") my_dog.name my_dog.dunxia() my_dog.dagun() print("My dog's name is " + you_dog.name.title() + ".") print("My dog is " + str(you_dog.age) + " years old.") you_dog.name you_dog.dunxia() you_dog